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

Ruby Enumerable मेथड्स में महारत: Any, All, None और One

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

Ruby Enumerable मेथड्स में महारत: Any, All, None और One

ये 4 मेथड्स या तो true या false लौटाते हैं।

विषय सूची

  • 1 Ruby All मेथड
  • 2 All और खाली सरणियाँ
  • 3 Ruby None मेथड
  • 4 Ruby Any मेथड
  • 5 Ruby One मेथड
  • 6 नई Ruby 2.5 सुविधा
  • 7 सारांश
    • 7.1 संबंधित

चलिए शुरू करते हैं!

Ruby All मेथड

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

आप यह कर सकते हैं:

 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 लौटाते हैं, अन्यथा हम अंत में true लौटाते हैं।

इस तरह की जांच के लिए यह बहुत सारा कोड है।

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

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

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

 str.size == 5 

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

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

हाँ!

सभी कठिन काम आपके लिए करने के लिए all? मेथड का उपयोग करें।

यहां कैसे:

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

बस इतना ही।

All और खाली सरणियाँ

एक बात जो आपको पता होनी चाहिए:

यह all? मेथड खाली सरणी पर कॉल किए जाने पर true लौटाएगा।

उदाहरण:

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

व्याख्या:

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

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

Ruby None मेथड

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

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

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

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

यह if स्टेटमेंट्स के लिए unless की तरह है।

Ruby Any मेथड

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

आप 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 है।

Ruby One मेथड

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

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

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

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

 ["a"].one? # true [].one? # false [nil].one? # false 

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

नई Ruby 2.5 सुविधा

Ruby 2.5 से ये 4 मेथड्स (any? / all? / none? / one?) एक आर्गुमेंट भी लेते हैं जो grep के आर्गुमेंट की तरह काम करता है।

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

 [:orange, :apple, :coconut].any?(Symbol) # true [1,2,3].all?(1..10) # true 

यह एक अच्छा छोटा शॉर्टकट है यदि आप किसी क्लास, रेगुलर एक्सप्रेशन या रेंज की जांच करना चाहते हैं।

सारांश

आपने 4 शानदार Ruby मेथड्स के बारे में सीखा जो आपका बहुत सारा काम बचा सकते हैं! ये मेथड्स केवल true या false लौटाते हैं।

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

यदि आपको यह लेख उपयोगी लगा तो कृपया साझा करें।


  1. Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड

    आइए grep मेथड के बारे में बात करते हैं। यह मेथड आपके लिए क्या कर सकता है? आप enumerable ऑब्जेक्ट्स को फ़िल्टर करने के लिए Grep का उपयोग कर सकते हैं, जैसे Arrays और Ranges। "लेकिन select पहले से ही ऐसा करता है!" हाँ, लेकिन grep अलग तरीके से काम करता है और अलग परिणाम उत्पन्न करता है। आइए कुछ

  1. Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड

    Map एक Ruby मेथड है जिसका उपयोग आप Arrays, Hashes और Ranges के साथ कर सकते हैं। map का मुख्य उपयोग डेटा को ट्रांसफॉर्म करना है। उदाहरण के लिए: स्ट्रिंग्स की एक सरणी दिए जाने पर, आप हर स्ट्रिंग पर जा सकते हैं और हर कैरेक्टर को UPPERCASE बना सकते हैं। या यदि आपके पास User ऑब्जेक्ट्स की एक सूची है... आ

  1. रूबी स्ट्रक्ट्स और OpenStruct में महारत: कुशल वैल्यू ऑब्जेक्ट्स रूबी स्ट्रक्ट्स और OpenStruct में महारत: कुशल वैल्यू ऑब्जेक्ट्स

    रूबी में स्ट्रक्ट क्या है? एक स्ट्रक्ट एक बिल्ट-इन रूबी क्लास है, इसका उपयोग वैल्यू ऑब्जेक्ट्स उत्पन्न करने वाली नई क्लासेस बनाने के लिए किया जाता है। एक वैल्यू ऑब्जेक्ट संबंधित विशेषताओं को एक साथ संग्रहीत करने के लिए उपयोग किया जाता है। यहां एक उदाहरण है: दो निर्देशांकों (x और y) के साथ एक Point।