dav*_*rac 4 ruby coding-style ruby-on-rails
Ruby数组中的许多方法在没有参数或块(index,keep_if和each,drop_while以及更多)的情况下调用时返回枚举器.
从文档到Enumerator:
大多数方法都有两种形式:一种是块形式,其中内容是为枚举中的每个项目计算的,另一种是非块形式,它返回一个包含迭代的新枚举器.
这允许您将枚举器链接在一起.例如,您可以将列表的元素映射到包含索引的字符串,并将元素映射为字符串,方法是:
Run Code Online (Sandbox Code Playgroud)puts %w[foo bar baz].map.with_index {|w,i| "#{i}:#{w}" } # => ["0:foo", "1:bar", "2:baz"]枚举器也可以用作外部迭代器.例如,Enumerator#next返回迭代器的下一个值,或者如果Enumerator在结尾处则引发StopIteration.
Run Code Online (Sandbox Code Playgroud)e = [1,2,3].each # returns an enumerator object. puts e.next # => 1 puts e.next # => 2 puts e.next # => 3 puts e.next # raises StopIteration
我很抱歉复制粘贴,但我无法解释得更好.
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |