التابع Enumerator::Lazy.enum_for في روبي
< Ruby | Enumerator::Lazy
يشبه التابع enum_for التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). يجعل هذا من السهل تعريف توابع الصنف Enumerable التي ستبقى كسولة بشكل طبيعي إن استدعيت من مُعدِّد كسول (lazy enumerator).
البنية العامة
enum_for(method = :each, *args) → lazy_enum
enum_for(method = :each, *args){|*args| block} → lazy_enum
المعاملات
method
تابع. القيمة الافتراضية هي: each:.
args
الوسائط المُمرَّرة إلى التابع method.
القيمة المعادة
يعاد مُعدِّدٌ كسولٌ (كائن من النوع Enumerator::Lazy).
أمثلة
المثال التالي هو تكملة للمثال الموجود في صفحة التابع Kernel.to_enum:
# repeat لمعرفة تعريف التابع Kernel#to_enum اطلع على صفحة التابع
r = 1..Float::INFINITY
r.repeat(2).first(5) # => [1, 1, 2, 2, 3]
r.repeat(2).class # => Enumerator
r.repeat(2).map{|n| n ** 2}.first(5) # => endless loop!
# :يعمل بشكل طبيعي مع المعدِّدات الكسولة
r.lazy.repeat(2).class # => Enumerator::Lazy
r.lazy.repeat(2).map{|n| n ** 2}.first(5) # => [1, 1, 4, 4, 9]
انظر أيضًا
- التابع
new: ينشئ كائن تعداد جديد من النوعEnumerator::Lazy. - التابع
to_enum: يشبه التابعKernel.to_enumباستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوعEnumerator::Lazy).