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

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

आइए grep मेथड के बारे में बात करते हैं।

यह मेथड आपके लिए क्या कर सकता है?

आप enumerable ऑब्जेक्ट्स को फ़िल्टर करने के लिए Grep का उपयोग कर सकते हैं, जैसे Arrays और Ranges।

"लेकिन select पहले से ही ऐसा करता है!"

हाँ, लेकिन grep अलग तरीके से काम करता है और अलग परिणाम उत्पन्न करता है।

आइए कुछ उदाहरण देखते हैं।

Ruby Grep मेथड उदाहरण

यह सरणी दी गई है:

 objects = ["a", "b", "c", 1, 2, 3, nil] 

आप केवल स्ट्रिंग्स प्राप्त करने के लिए grep का उपयोग कर सकते हैं:

 objects.grep(String) # ["a", "b", "c"] 

केवल इंटीजर्स:

 objects.grep(Integer) # [1, 2, 3] 

या वह सब कुछ जो nil नहीं है:

 objects.grep_v(NilClass) # ["a", "b", "c", 1, 2, 3] 

यदि आपके पास शब्दों की एक सरणी है:

 fruit = ["apple", "orange", "banana"] 

आप "a" से शुरू होने वाले सभी शब्द ढूंढ सकते हैं:

 fruit.grep(/^a/) # ["apple"] 

या जो "e" पर समाप्त होते हैं:

 fruit.grep(/e$/) # ["apple", "orange"] 

और यदि आपके पास नंबरों की सूची है:

 numbers = [9, 10, 11, 20] 

आप एक रेंज के भीतर सभी नंबरों की सूची प्राप्त कर सकते हैं:

 numbers.grep(5..10) # [9, 10] 

जब आप ब्लॉक का उपयोग करते हैं तो आप map मेथड और select को एक में जोड़ सकते हैं:

 numbers.grep(5..10) { |n| n * 2 } # [18, 20] 

यदि आप फैंसी बनना चाहते हैं...

 times_two = ->(x) { x * 2 } numbers.grep(5..10, &times_two) # [18, 20] 

बहुत बढ़िया, है ना?

Grep बनाम Select: अंतर समझना

grep कैसे काम करता है?

ट्रिक Ruby में === मेथड (ट्रिपल इक्वल्स) के साथ है।

Grep आपके द्वारा पास किए गए आर्गुमेंट पर इस मेथड को कॉल करता है।

और यह पता चलता है कि क्लासेज, रेगुलर एक्सप्रेशन्स और रेंजेज सभी === को लागू करते हैं।

वे इस मेथड को क्लास के लिए समझ में आने वाले तरीके से लागू करते हैं।

उदाहरण के लिए:

  • क्लासेज (जैसे Integer या Array), दिए गए ऑब्जेक्ट की क्लास से तुलना करते हैं।
  • रेंजेज जांचते हैं कि नंबर रेंज में शामिल है या नहीं।
  • रेगुलर एक्सप्रेशन्स जांचते हैं कि कोई मिलान है या नहीं।

तो जब आप कहते हैं:

 objects.grep(Integer) 

आप वास्तव में कह रहे हैं:

 objects.select { |obj| Integer === obj } 

लंबे समय तक, मैं grep के बारे में भ्रमित था...

जब तक मुझे यह समझ नहीं आया।

select मेथड ब्लॉक के परिणामों के आधार पर सूची को फ़िल्टर करता है।

यदि ब्लॉक true का मूल्यांकन करता है, तो वह तत्व चुना जाता है।

लेकिन grep केवल === का उपयोग करके दो चीजों की तुलना करता है।

आप कह सकते हैं कि grep select का एक अधिक विशिष्ट संस्करण है!

Ruby Grep माइंडमैप

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

वीडियो ट्यूटोरियल देखें

सारांश

आपने Ruby में grep मेथड के बारे में सीखा! जब आप समझते हैं कि यह कैसे काम करता है तो यह एक बहुत ही उपयोगी मेथड है।

अभ्यास करना सुनिश्चित करें ताकि यह बैठ जाए।

अभ्यास महारत की कुंजी है!


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

    आज आप 4 Enumerable मेथड्स के बारे में सीखेंगे जो आपको तत्वों की एक सरणी, हैश, या Enumerable मॉड्यूल को शामिल करने वाले किसी भी अन्य ऑब्जेक्ट्स के खिलाफ एक सशर्त कथन की जांच करने में मदद करेंगे। ये 4 मेथड्स या तो true या false लौटाते हैं। विषय सूची1 Ruby All मेथड2 All और खाली सरणियाँ3 Ruby None मेथड

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

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

  1. Linux Watch कमांड में मास्टरी: सिंटैक्स, विकल्प और व्यावहारिक उदाहरण Linux Watch कमांड में मास्टरी: सिंटैक्स, विकल्प और व्यावहारिक उदाहरण

    Linux में watch कमांड एक काम करता है – एक कमांड को दोहराता है और परिणाम को बार-बार आउटपुट करता है, जिससे आप परिवर्तनों को देख सकते हैं। यहाँ इसका उपयोग कैसे करें। watch कमांड सिंटैक्स watch कमांड का सिंटैक्स इस प्रकार है: watch OPTIONS COMMAND ध्यान दें कि: OPTIONS नीचे दी गई तालिका से विकल्पों की