আমি রুবিতে লুপের জন্য এই জাতীয় কীভাবে করব?
for(int i=0; i<array.length; i++) {
}
আমি রুবিতে লুপের জন্য এই জাতীয় কীভাবে করব?
for(int i=0; i<array.length; i++) {
}
উত্তর:
array.each do |element|
element.do_stuff
end
বা
for element in array do
element.do_stuff
end
আপনার যদি সূচকের প্রয়োজন হয় তবে আপনি এটি ব্যবহার করতে পারেন:
array.each_with_index do |element,index|
element.do_stuff(index)
end
each
দুর্দান্ত। তবে কখনও কখনও আমি লুপের জন্য কেবল একটি damতিহ্যবাহী সনাতন চাই। কখনও কখনও "রুবি ওয়ে" কেবল সাধারণ বিরক্তিকর হতে পারে।
আমি গুগল "লুপের জন্য রুবি" এর শীর্ষ লিঙ্ক হিসাবে এটিকে আঘাত করে চলেছি, তাই আমি লুপগুলির জন্য একটি সমাধান যুক্ত করতে চেয়েছিলাম যেখানে পদক্ষেপটি কেবল '1' নয়। এই ক্ষেত্রে, আপনি 'পদক্ষেপ' পদ্ধতিটি ব্যবহার করতে পারেন যা সংখ্যাসূচক এবং তারিখ অবজেক্টগুলিতে বিদ্যমান। আমি মনে করি এটি একটি 'ফর' লুপের নিকটতম অনুমান।
start = Date.new(2013,06,30)
stop = Date.new(2011,06,30)
# step back in time over two years, one week at a time
start.step(stop, -7).each do |d|
puts d
end
array.each_index do |i|
...
end
এটি খুব রুবিশ নয়, তবে এটি রুবীর প্রশ্ন থেকে লুপের জন্য সর্বোত্তম উপায়
each
বরং নয় each_index
। +1
যদি আপনার অ্যারে অ্যাক্সেস করার প্রয়োজন না হয় , (লুপের জন্য কেবল একটি সাধারণ) আপনি প্রতিটি বা প্রতিটি পর্যন্ত ব্যবহার করতে পারেন :
পর্যন্ত:
1.9.3p392 :030 > 2.upto(4) {|i| puts i}
2
3
4
=> 2
প্রতিটি:
1.9.3p392 :031 > (2..4).each {|i| puts i}
2
3
4
=> 2..4
কি? ২০১০ সাল থেকে এবং কেউই উল্লেখ করেনি যে রুবির পক্ষে / ইন লুপের জন্য জরিমানা রয়েছে (এটি কেবল কেউ এটি ব্যবহার করে না):
ar = [1,2,3,4,5,6]
for item in ar
puts item
end
রুবির এনুমারেশন লুপ সিনট্যাক্স আলাদা:
collection.each do |item|
...
end
এটি "অ্যারে অবজেক্ট ইনস্ট্যান্স 'সংগ্রহের' প্রতিটি 'পদ্ধতির কল হিসাবে' আর্গুমেন্ট হিসাবে 'ব্লকারগমেন্ট' দিয়ে ব্লক গ্রহণ করে" এটি পড়বে। রুবির ব্লক বাক্য গঠনটি একক লাইন স্টেটমেন্টের জন্য 'ডু ... শেষ' বা '{...}'।
ব্লক আর্গুমেন্ট '| আইটেম |' isচ্ছিক তবে যদি সরবরাহ করা হয় তবে প্রথম যুক্তিটি স্বয়ংক্রিয়ভাবে লুপযুক্ত গণিত আইটেমটি উপস্থাপন করে।