रूबी - Iterators

Iterators और कुछ नहीं बल्कि संग्रह द्वारा समर्थित विधियां हैं । वे ऑब्जेक्ट जो डेटा सदस्यों के समूह को संग्रहित करते हैं, उन्हें संग्रह कहा जाता है। रूबी में, arrays और hashes को संग्रह कहा जा सकता है।

Iterators संग्रह के सभी तत्वों को एक के बाद एक वापस करते हैं। हम यहां दो पुनरावृत्तियों पर चर्चा करेंगे, प्रत्येक और एकत्रित । आइए इन पर विस्तार से देखें।

प्रत्येक Iterator रूबी

प्रत्येक पुनरावृत्त एक सरणी या हैश के सभी तत्वों को लौटाता है।

वाक्य - विन्यास

collection.each do |variable|
   code
end

संग्रह में प्रत्येक तत्व के लिए कोड निष्पादित करता है । यहां, संग्रह एक सरणी या रूबी हैश हो सकता है।

उदाहरण

#!/usr/bin/ruby

ary = [1,2,3,4,5]
ary.each do |i|
   puts i
end

यह निम्नलिखित परिणाम का उत्पादन करेगा -

1
2
3
4
5

आप हमेशा प्रत्येक पुनरावृत्ति को एक ब्लॉक से जोड़ते हैं। यह एरे के प्रत्येक मान को, एक-एक करके, ब्लॉक में लौटाता है। मान चर में संग्रहीत हैi और फिर स्क्रीन पर प्रदर्शित किया जाता है।

रूबी इकट्ठा इटरेटर

कलेक्ट इटरेटर रिटर्न सब एक संग्रह के तत्वों।

वाक्य - विन्यास

collection = collection.collect

कलेक्ट विधि हमेशा एक ब्लॉक के साथ जुड़े होने की जरूरत नहीं है। कलेक्ट विधि पूरे संग्रह देता है, चाहे वह किसी सरणी या एक हैश है की परवाह किए बिना।

उदाहरण

#!/usr/bin/ruby

a = [1,2,3,4,5]
b = Array.new
b = a.collect
puts b

यह निम्नलिखित परिणाम का उत्पादन करेगा -

1
2
3
4
5

NOTE- इकट्ठा विधि सरणियों के बीच नकल करने का सही तरीका नहीं है। एक अन्य विधि है जिसे क्लोन कहा जाता है , जिसका उपयोग एक सरणी को दूसरे सरणी में कॉपी करने के लिए किया जाना चाहिए।

जब आप नया एरे प्राप्त करने के लिए प्रत्येक मान के साथ कुछ करना चाहते हैं तो आप आम तौर पर कलेक्ट पद्धति का उपयोग करते हैं। उदाहरण के लिए, यह कोड एक सरणी बी पैदा करता है जिसमें प्रत्येक में 10 गुना मूल्य होता है

#!/usr/bin/ruby

a = [1,2,3,4,5]
b = a.collect{|x| 10*x}
puts b

यह निम्नलिखित परिणाम का उत्पादन करेगा -

10
20
30
40
50