• 0

كيف أهرب تكرار .each{} مبكرا في روبي؟

في الشيفرة البرمجية التالية:

 c = 0  
 items.each { |i|  
   puts i.to_s    
   # if c > 9 escape the each iteration early - and do not repeat  
   c++  
 }

أريد التكرار 10 مرات فقط وبعدها أغادر الحلقة، فبماذا أستبدل التعليق الموجودة في الشيفرة البرمجية؟ هل هنالك حل أفضل من الحل الذي وضعته؟

تمّ تعديل بواسطة المبرمج العربي

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هنالك طرق عديدة في لغة روبي للخروج من حلقة تكرار each فيمكنك على سبيل المثال استخدام do و end في تعريف حلقة التكرار ومن ثم وضع شرط الخروج باستخدام break والجملة الشرطية if كما في المثال التالي:

c = 0  
items.each do |i|  
  puts i.to_s    
  break if c > 9
  c += 1
end

أو يمكنك اختصار السطور السابقة إلى التالي:

items.each_with_index do |i, c|  
  puts i.to_s    
  break if c > 9
end

أو يمكنك أيضا اختصارها إلى سطر واحد فقط وذلك عن طريق استخدام take حيث ستأخذ أول 10 عناصر فقط:

items.take(10).each { |i| puts i.to_s }

ملاحظة: لا يوجد عامل ++ في روبي ويمكنك كتابة c += 1 بدلا من ذلك.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن