التابع Enumerator::Lazy.to_enum في روبي
< Ruby | Enumerator::Lazy
يشبه التابع to_enum التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). يجعل هذا من السهل تعريف توابع الصنف Enumerable التي ستبقى كسولة بشكل طبيعي إن استدعيت من مُعدِّد كسول (lazy enumerator).
البنية العامة
to_enum(method = :each, *args) → lazy_enum
to_enum(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. - التابع
enum_for: يشبه التابعKernel.to_enumباستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوعEnumerator::Lazy).