本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。