gpt4 book ai didi

ruby-on-rails - 在 Ruby 数组中使用返回枚举器的方法的正确方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 07:26:05 24 4
gpt4 key购买 nike

Ruby array 中的许多方法在没有参数或 block 的情况下调用时返回枚举器(indexkeep_ifeachdrop_while 等等)。

  • 什么时候适合使用这种形式的方法,而不是用 block 调用它们?

最佳答案

从文档到 Enumerator :

Most methods have two forms: a block form where the contents are evaluated for each item in the enumeration, and a non-block form which returns a new Enumerator wrapping the iteration.

This allows you to chain Enumerators together. For example, you can map a list’s elements to strings containing the index and the element as a string via:

puts %w[foo bar baz].map.with_index {|w,i| "#{i}:#{w}" }
# => ["0:foo", "1:bar", "2:baz"]

An Enumerator can also be used as an external iterator. For example, Enumerator#next returns the next value of the iterator or raises StopIteration if the Enumerator is at the end.

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

很抱歉复制粘贴,但我无法解释得更好。

关于ruby-on-rails - 在 Ruby 数组中使用返回枚举器的方法的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11921688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com