التابع Enumerator.next_values في روبي

من موسوعة حسوب
مراجعة 08:05، 29 ديسمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إنشاء الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعيد التابع next_values مصفوفة تحوي الكائن التالي في المُعدِّد الذي استدعي معه، ويحرك موضع المؤشر الداخلي للأمام خطوةً واحدةً. عند وصول المؤشر إلى النهاية، يُطلَق الاستثناء StopIteration.

يمكن استعمال هذا التابع للتمييز بين yield و yield nil.

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

next_values  array

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

تعاد مصفوفة تحوي الكائن التالي في المُعدِّد المعطى.

أمثلة

مثال على استعمال التابع next_values:

o = Object.new
def o.each
  yield
  yield 1
  yield 1, 2
  yield nil
  yield [1, 2]
end
e = o.to_enum
p e.next_values
p e.next_values
p e.next_values
p e.next_values
p e.next_values
e = o.to_enum
p e.next
p e.next
p e.next
p e.next
p e.next

## yield args       next_values      next
#  yield            []               nil
#  yield 1          [1]              1
#  yield 1, 2       [1, 2]           [1, 2]
#  yield nil        [nil]            nil
#  yield [1, 2]     [[1, 2]]         [1, 2]

انتبه إلى أنَّ التابع next_values لا يؤثر على التوابع التعدادية الغير خارجية (non-external enumeration methods) إلا إن كان لتوابع التكرار الأساسية نفسها آثارًا جانبية مثل التابع IO.each_line.

انظر أيضًا

  • التابع feed: يضبط القيمة المراد إعادتها عبر الاستدعاء yield التالي داخل e.
  • التابع next: يعيد الكائن التالي في المُعدِّد الذي استدعي معه، ويحرك موضع المؤشر الداخلي للأمام خطوة واحدة.

مصادر