التابع loop‎ الخاص بالصنف Kernel في روبي

من موسوعة حسوب
< Ruby‏ | Kernel
مراجعة 14:51، 15 نوفمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

ينفذ التابع loop الكتلة البرمجية المعطاة بشكل متكرر.

في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف enumerator بدلاً من ذلك.

يؤدي اطلاق الاستثناء StopIteration داخل الكتلة إلى إيقاف الحلقة التكرارية. في هذه الحالة، سيعيد التابع loop قيمة "النتيجة" المخزنة في الاستثناء.

البنية العامة

loop { block }
loop an_enumerator

القيمة المعادة

يؤدي اطلاق الاستثناء StopIteration داخل الكتلة إلى إعادة قيمة "النتيجة" المخزنة في الاستثناء. أما في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف enumerator.

أمثلة

مثال على استخدام التابع loop‎:

loop do
  print "Input: "
  line = gets
  break if !line or line =~ /^qQ/
  # ...
end

مثالٌ آخر على استعمال التابع loop‎:

enum = Enumerator.new { |y|
  y << "one"
  y << "two"
  :ok
}

result = loop {
  puts enum.next
} #=> :ok

انظر أيضا

  • التابع lambda: يكافئ التعبير Proc.new، باستثناء أنّ كائنات Proc الناتجة ستتحقق من عدد الوسائط الممررة عند استدعائها.

مصادر