आइए बात करते हैं grep
. के बारे में विधि।
यह विधि आपके लिए क्या कर सकती है?
आप ग्रेप का उपयोग एरेज़ और रेंज जैसी असंख्य वस्तुओं को फ़िल्टर करने के लिए कर सकते हैं।
“लेकिन चुनें पहले से ही ऐसा करता है!”
हां, लेकिन grep एक अलग तरीके से काम करता है और यह अलग परिणाम देता है।
आइए कुछ उदाहरण देखें।
रूबी ग्रेप विधि उदाहरण
इस सरणी को देखते हुए:
objects = ["a", "b", "c", 1, 2, 3, nil]
आप केवल तार प्राप्त करने के लिए grep का उपयोग कर सकते हैं :
objects.grep(String) # ["a", "b", "c"]
केवल पूर्णांक:
objects.grep(Integer) # [1, 2, 3]
या वह सब कुछ जो शून्य नहीं है :
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]
जब आप किसी ब्लॉक का उपयोग करते हैं तो आप मानचित्र विधि को जोड़ सकते हैं और एक में चुन सकते हैं:
numbers.grep(5..10) { |n| n * 2 } # [18, 20]
यदि आप आकर्षक दिखना चाहते हैं…
times_two = ->(x) { x * 2 } numbers.grep(5..10, ×_two) # [18, 20]
बहुत बढ़िया, है ना?
ग्रेप बनाम चुनें:अंतर को समझना
ग्रेप कैसे काम करता है?
चाल ===
. के साथ है रूबी में विधि (ट्रिपल बराबर)।
Grep इस विधि को आप जिस भी तर्क से पास करते हैं उस पर कॉल करता है।
और यह पता चला है कि कक्षाएं, नियमित अभिव्यक्ति और श्रेणियां सभी लागू होती हैं ===
।
वे इस पद्धति को इस तरह से लागू करते हैं जो कक्षा के लिए समझ में आता है।
उदाहरण के लिए :
- कक्षाएं (जैसे
Integer
याArray
), दिए गए ऑब्जेक्ट क्लास से तुलना करें। - श्रेणी जांचती है कि संख्या श्रेणी में शामिल है या नहीं।
- रेगुलर एक्सप्रेशन से पता चलता है कि कोई मेल है या नहीं।
तो जब आप कहते हैं :
objects.grep(Integer)
आप वास्तव में क्या कह रहे हैं :
objects.select { |obj| Integer === obj }
लंबे समय से, मैं grep को लेकर असमंजस में था…
जब तक मैं इसे समझ नहीं पाया।
select
विधि ब्लॉक के परिणामों के आधार पर सूची को फ़िल्टर करती है।
यदि ब्लॉक सत्य का मूल्यांकन करता है, तो वह तत्व चुना जाता है।
लेकिन grep
===
. का उपयोग करके बस दो चीजों की तुलना करता है ।
आप कह सकते हैं कि grep चुनिंदा का अधिक विशिष्ट संस्करण है !
रूबी ग्रेप माइंडमैप
वीडियो ट्यूटोरियल देखें
सारांश
आपने रूबी में grep विधि के बारे में सीखा! जब आप समझते हैं कि यह कैसे काम करता है तो यह एक बहुत ही उपयोगी तरीका है।
इसे डूबने देने के लिए अभ्यास करना सुनिश्चित करें।
अभ्यास महारत की कुंजी है!