枚举器中的当前对象
Current object in Enumerator
Enumerator#peek
returns 枚举器中的下一个对象。但是如何获取当前对象呢?
除了使用索引(用于数组),我找不到任何其他解决方案。
像这样:
enum = [1,2,3].to_enum
#=> #<Enumerator: [1, 2, 3]:each>
enum.next #=> 1
enum.peek #=> 2
enum.peek #=> 2 # to show enumerator is not incremented
enum.next #=> 2
enum.peek #=> 3
enum.next #=> 3
enum.peek #=> StopIteration: iteration reached an end
如果需要知道枚举器的当前值,执行enum.next
后,只需将其保存到一个变量:curr = enum.next
。枚举器通常与块一起使用,在这种情况下,枚举器的当前值被分配给块变量。据我所知,无法从枚举器对象中获取枚举器的当前值。
Enumerator#peek
returns 枚举器中的下一个对象。但是如何获取当前对象呢?
除了使用索引(用于数组),我找不到任何其他解决方案。
像这样:
enum = [1,2,3].to_enum
#=> #<Enumerator: [1, 2, 3]:each>
enum.next #=> 1
enum.peek #=> 2
enum.peek #=> 2 # to show enumerator is not incremented
enum.next #=> 2
enum.peek #=> 3
enum.next #=> 3
enum.peek #=> StopIteration: iteration reached an end
如果需要知道枚举器的当前值,执行enum.next
后,只需将其保存到一个变量:curr = enum.next
。枚举器通常与块一起使用,在这种情况下,枚举器的当前值被分配给块变量。据我所知,无法从枚举器对象中获取枚举器的当前值。