Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

रूबी का उपयोग कैसे करें कोई भी, सभी, कोई नहीं और एक

आज आप 4 एन्यूमरेबल विधियों के बारे में जानेंगे जो आपको तत्वों की एक सरणी, एक हैश, या किसी अन्य ऑब्जेक्ट के खिलाफ सशर्त स्टेटमेंट की जांच करने में मदद करेंगे जिसमें एन्यूमरेबल मॉड्यूल शामिल है।

रूबी का उपयोग कैसे करें कोई भी, सभी, कोई नहीं और एक

ये 4 विधियाँ या तो true लौटाती हैं या false

सामग्री

  • 1 रूबी ऑल मेथड
  • 2 सभी और खाली सरणी
  • 3 रूबी कोई नहीं विधि
  • 4 रूबी कोई भी तरीका
  • 5 रूबी वन मेथड
  • 6 नई रूबी 2.5 फ़ीचर
  • 7 सारांश
    • 7.1 संबंधित

चलो यह करते हैं!

रूबी ऑल मेथड

यदि आप यह जांचना चाहते हैं कि किसी सरणी के अंदर के सभी तारों का एक विशिष्ट आकार है या नहीं।

आप ऐसा कर सकते हैं :

def all_words_have_specific_size?(words)
  return false if words.empty?

  words.each do |str|
    return false unless str.size == 5
  end

  true
end

words = ["bacon", "orange", "apple"]

all_words_have_specific_size?(words)
# false

हम हर स्ट्रिंग की जांच करते हैं, अगर आकार वह नहीं है जो हम चाहते हैं तो हम false return लौटाते हैं , अन्यथा हम true return लौटाते हैं अंत में।

कुछ इस तरह के लिए यह बहुत सारा कोड है।

इसे हर बार सेट करने की कल्पना करें आप इस प्रकार की जांच करना चाहते हैं।

यह बहुत काम है!

यहाँ केवल एक ही चीज़ की हम परवाह करते हैं:

str.size == 5

यह वह स्थिति है जिसकी हम जांच कर रहे हैं

क्या ऐसा करने का कोई बेहतर तरीका है?

हाँ!

all? का उपयोग करें आपके लिए पूरी मेहनत करने का तरीका।

यहां बताया गया है :

strings.all? { |str| str.size == 5 }

बस।

सभी और खाली सरणी

एक बात जो आपको अवश्य जाननी चाहिए:

यह all? विधि true लौटाएगी यदि आप इसे एक खाली सरणी पर कहते हैं।

उदाहरण :

[].all? { |s| s.size == 1 }
# true

स्पष्टीकरण :

चूँकि NO तत्व false हैं तो सभी तत्व true होने चाहिए ।

इसके पीछे यही तर्क है।

रूबी कोई नहीं विधि

अगर आप all? . का उल्टा चाहते हैं , उपयोग करें none?

यहां एक उदाहरण दिया गया है :

strings.none? { |str| str.size == 5 }

यह true लौटाता है यदि कोई भी स्ट्रिंग शर्त से मेल नहीं खाती है, या false यदि एक या अधिक इससे मेल खाते हैं।

यह तब तक की तरह है जब तक कि if कथन के लिए।

रूबी एनी मेथड

क्या आप जानना चाहेंगे कि क्या कोई तत्व आपकी स्थिति से मेल खाता है?

आप any? . का उपयोग कर सकते हैं विधि!

इसे पसंद करें :

[1,2,3,4,5].any?
# true

इस विशिष्ट उदाहरण में, any? empty? . के विलोम की तरह काम करता है . लेकिन यह हर स्थिति के लिए काम नहीं करेगा।

क्योंकि यह प्रश्न पूछ रहा है :

"क्या इस सरणी के अंदर कोई TRUTHY तत्व हैं?"

यदि आपकी सरणी में केवल गैर-सत्य (nil . शामिल है /false ) वे मान जो आपको मिलेंगे false , लेकिन सरणी वास्तव में खाली नहीं है।

उदाहरण :

[nil].any?
# false

आप इस विधि के लिए एक ब्लॉक भी पास कर सकते हैं:

[1,2,3].any? { |n| n > 0 }
# true

यह जाँच करेगा कि क्या n > 0 क्या true है कम से कम एक तत्व के लिए।

रूबी वन मेथड

आप जांच सकते हैं कि क्या वास्तव में एक तत्व true लौटाता है one? . के साथ विधि।

यहां एक उदाहरण दिया गया है :

["a", 1, {}].one? { |obj| obj.kind_of?(Hash) }
# true

आप ब्लॉक के बिना इसका उपयोग यह जांचने के लिए कर सकते हैं कि क्या सरणी में बिल्कुल एक सत्य मान है (कुछ भी लेकिन false / nil )।

["a"].one?
# true

[].one?
# false

[nil].one?
# false

मैं size == 1 . पर टिका रहूंगा क्योंकि यह अधिक स्पष्ट है। हर कोई यह समझेगा कि भले ही वे one? . से परिचित न हों विधि, जो कि सामान्य नहीं है।

नई रूबी 2.5 फ़ीचर

रूबी 2.5 के बाद से ये 4 तरीके (any? / all? / none? / one? ) एक तर्क भी लें जो grep के तर्क की तरह काम करता है।

यहां मेरा मतलब है :

[:orange, :apple, :coconut].any?(Symbol)
# true

[1,2,3].all?(1..10)
# true

यदि आप कक्षा, नियमित अभिव्यक्ति या श्रेणी की जांच करना चाहते हैं तो यह एक अच्छा छोटा शॉर्टकट है।

सारांश

आपने रूबी के 4 भयानक तरीकों के बारे में सीखा है जो आपको बहुत काम बचा सकते हैं! ये विधियां केवल true return लौटाती हैं या false

अगर आपने पहले इन तरीकों का इस्तेमाल नहीं किया है... क्यों न इन्हें अभी आज़माएं?

अगर आपको यह लेख उपयोगी लगा हो तो कृपया इसे शेयर करें।


  1. रूबी ग्रेप विधि का उपयोग कैसे करें (उदाहरण के साथ)

    आइए बात करते हैं grep . के बारे में विधि। यह विधि आपके लिए क्या कर सकती है? आप ग्रेप का उपयोग एरेज़ और रेंज जैसी असंख्य वस्तुओं को फ़िल्टर करने के लिए कर सकते हैं। “लेकिन चुनें पहले से ही ऐसा करता है!” हां, लेकिन grep एक अलग तरीके से काम करता है और यह अलग परिणाम देता है। आइए कुछ उदाहरण देखें।

  1. रूबी मानचित्र विधि का उपयोग कैसे करें (उदाहरण के साथ)

    मैप एक रूबी विधि है जिसका उपयोग आप ऐरे, हैश और रेंज के साथ कर सकते हैं। मानचित्र का मुख्य उपयोग डेटा को ट्रांसफ़ॉर्म करना है। उदाहरण के लिए : स्ट्रिंग्स की एक सरणी को देखते हुए, आप प्रत्येक स्ट्रिंग पर जा सकते हैं और प्रत्येक वर्ण को अपरकेस बना सकते हैं। या यदि आपके पास User . की सूची है ऑब्जेक्

  1. रूबी में स्ट्रक्चर और ओपनस्ट्रक्चर का उपयोग कैसे करें?

    रूबी में स्ट्रक्चर क्या है? एक संरचना एक अंतर्निहित रूबी वर्ग है, इसका उपयोग नए वर्ग बनाने के लिए किया जाता है जो मूल्य वस्तुओं का उत्पादन करते हैं। संबंधित विशेषताओं को एक साथ संग्रहीत करने के लिए एक मूल्य वस्तु का उपयोग किया जाता है। यहां एक उदाहरण दिया गया है : एक Point दो निर्देशांकों के साथ