當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby Lazy.to_enum用法及代碼示例

本文簡要介紹ruby語言中 Enumerator::Lazy.to_enum 的用法。

用法

to_enum(method = :each, *args) → lazy_enum
to_enum(method = :each, *args) {|*args| block } → lazy_enum
也別名為:enum_for

類似於 Object#to_enum ,除了它返回一個惰性枚舉器。這使得定義 Enumerable 方法變得容易,如果從惰性枚舉器調用這些方法自然會保持惰性。

例如,繼續 Object#to_enum 中的示例:

# See Object#to_enum for the definition of repeat
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!
# works naturally on lazy enumerator:
r.lazy.repeat(2).class # => Enumerator::Lazy
r.lazy.repeat(2).map{|n| n ** 2}.first(5) # => [1, 1, 4, 4, 9]

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Lazy.to_enum。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。