मैं रूबी में each
लूप के लिए प्रारंभिक ऑफ़सेट कैसे सेट करूं? मैं चाहता हूं कि लूप a[0]
के बजाय a[3]
से शुरू हो। मैं इसे कैसे सेट करूं?रूबी - प्रत्येक प्रारंभ ऑफसेट
a = [ab, cd, ef, gh, hi, jk]
a.each do |i|
#some stuff
end
मैं रूबी में each
लूप के लिए प्रारंभिक ऑफ़सेट कैसे सेट करूं? मैं चाहता हूं कि लूप a[0]
के बजाय a[3]
से शुरू हो। मैं इसे कैसे सेट करूं?रूबी - प्रत्येक प्रारंभ ऑफसेट
a = [ab, cd, ef, gh, hi, jk]
a.each do |i|
#some stuff
end
एक और, संभावित रूप से अधिक प्रत्यक्ष और पठनीय संभावना Array#drop
का उपयोग करना है:
a.drop(3).each do |i|
# do something with item i
end
अब यह वास्तव में चमकता है अगर Enumerable
से विरासत में प्राप्त अन्य विधियों के साथ संयुक्त हो, तो संभावना है कि आपके अनिवार्य each
पाश के लिए बेहतर विकल्प हो।
a = [0,1,2,3,4,5,6,7]
a.drop(3).select(&:even?).map { |x| x * 2 }
# => [8, 12]
या कहते हैं कि तुम सब मानों की सूची प्रिंट करना चाहते हैं:
a = ["1", "2", "3", "4", "5"]
puts a.drop(3).join("\n")
आउटपुट:
4
5
ये आप निकाले टुकड़ा को फ़िल्टर और बाद में बदलना चाहते हैं कहो कार्यात्मक प्रोग्रामिंग से विरासत में मिली विशेषताएं रूबी को इतनी मजबूत बनाती हैं :)
सरणी के एक subpart पर उपयोग each
। नीचे दिए गए उदाहरण में, चौथा तत्व से समाप्त करने के लिए:
a[3..-1].each do |i|
#some stuff
end
a [a.size - 1] .each do | i | – JohnMerlino
यह तुम्हारी मदद करेगा
a[3..-1].each do |i|
#your logic
end
अधिकांश Rubyist के बारे में पाश के लिए अच्छे पुराने भूल:
n = 3
for i in n...a.size
puts a[i]
end
क्योंकि यह बेकार है, क्योंकि यह एक नया दायरा पेश नहीं करता है, जो प्रति-अंतर्ज्ञानी है क्योंकि यह 'डू/एंड' का उपयोग करता है। इसके अलावा, ओपी इंडेक्स नहीं, सरणी वस्तुओं की गणना करना चाहता था। –
हू? प्रत्येक भी डू/एंड का उपयोग करता है? यदि आप एक नया दायरा चाहते हैं, तो प्रो क्लोजर का उपयोग न करें, लूप के अंदर एक विधि कॉल का उपयोग करें। यदि उनके कोड ब्लॉक के लिए प्रत्येक के बीच एक प्रिंसिपल अंतर है, तो मैं इसे जानना चाहता हूं (मैं लूप के लिए भी उपयोग करता हूं :) –
वैसे भी, मैंने कोड के बजाय [i] जोड़ा है, धन्यवाद। –
कौन सी कार्यात्मक प्रोग्रामिंग भाषाओं ने प्रोग्रामिंग की इस शैली को प्रभावित किया? – Vass
@Vass इन LISP और बाद में हास्केल जो लगातार एकल लिंक्ड सूचियों पर भरोसा करते हैं, यह शैली बहुत आम है (उदाहरण के लिए आप शास्त्रीय कार्य 'मानचित्र', 'फ़िल्टर',' टेक', 'ड्रॉप', 'ज़िप' इत्यादि। आपको रूबी के 'एन्यूमेबल' मॉड्यूल में भी मिलते हैं) –
बाइनरी सर्च या कुछ अन्य सॉर्टिंग एल्गोरिदम – Donato