التابع 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
).