本文简要介绍ruby语言中 Enumerator::Lazy.enum_for
的用法。
用法
enum_for(method = :each, *args) → lazy_enum
enum_for(method = :each, *args) {|*args| block } → lazy_enum
别名:to_enum
类似于 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 Lazy.collect用法及代码示例
- Ruby Lazy.collect_concat用法及代码示例
- Ruby Lazy.flat_map用法及代码示例
- Ruby Lazy._enumerable_map用法及代码示例
- Ruby Lazy._enumerable_flat_map用法及代码示例
- Ruby Lazy.new用法及代码示例
- Ruby Lazy._enumerable_filter_map用法及代码示例
- Ruby Lazy._enumerable_collect用法及代码示例
- Ruby Lazy.filter_map用法及代码示例
- Ruby Lazy.to_enum用法及代码示例
- Ruby Lazy._enumerable_collect_concat用法及代码示例
- Ruby Lazy.map用法及代码示例
- Ruby Lazy类用法及代码示例
- Ruby List.append用法及代码示例
- Ruby LoadError类用法及代码示例
- Ruby List.prepend用法及代码示例
- Ruby LDAP.build用法及代码示例
- Ruby Logger类用法及代码示例
- Ruby Location.lineno用法及代码示例
- Ruby Location.label用法及代码示例
- Ruby Location.path用法及代码示例
- Ruby Logger.info用法及代码示例
- Ruby Location类用法及代码示例
- Ruby LDAP.new用法及代码示例
- Ruby LocalJumpError类用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Lazy.enum_for。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。