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

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

आइए बात करते हैं 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, &times_two)
# [18, 20]

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

ग्रेप बनाम चुनें:अंतर को समझना

ग्रेप कैसे काम करता है?

चाल === . के साथ है रूबी में विधि (ट्रिपल बराबर)।

Grep इस विधि को आप जिस भी तर्क से पास करते हैं उस पर कॉल करता है।

और यह पता चला है कि कक्षाएं, नियमित अभिव्यक्ति और श्रेणियां सभी लागू होती हैं ===

वे इस पद्धति को इस तरह से लागू करते हैं जो कक्षा के लिए समझ में आता है।

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

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

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

objects.grep(Integer)

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

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

लंबे समय से, मैं grep को लेकर असमंजस में था…

जब तक मैं इसे समझ नहीं पाया।

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

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

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

आप कह सकते हैं कि grep चुनिंदा का अधिक विशिष्ट संस्करण है !

रूबी ग्रेप माइंडमैप

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

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

सारांश

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

इसे डूबने देने के लिए अभ्यास करना सुनिश्चित करें।

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


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

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

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

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

  1. उदाहरण के साथ, लिनक्स में वॉच कमांड का उपयोग कैसे करें

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