当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。