ruby - 枚举器中的当前对象

标签 ruby enumeration

<分区>

Enumerator#peek 返回枚举器中的下一个对象。但是如何获取当前对象呢?

除了使用索引(用于数组),我找不到任何其他解决方案。

最佳答案

像这样:

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。枚举器通常与 block 一起使用,在这种情况下,枚举器的当前值被分配给 block 变量。据我所知,无法从枚举器对象中获取枚举器的当前值。

关于ruby - 枚举器中的当前对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29067202/

相关文章:

ruby - 列出 gem 的非 ruby​​ 依赖项的最佳方法是什么?

Ruby Mysql2 使用符号而不是字符串作为键返回结果哈希

ruby - 单引号字符串中的反斜杠与双引号字符串

objective-c - 如何停止 enumerateObjectsUsingBlock Swift

OCaml中哈希表的随机枚举

ruby-on-rails - 解密密码——RoR

c - 用 c 模块扩展 Ruby 返回奇怪的值,请解释一下……

javascript - 在 JavaScript 中访问对象的枚举成员

c# - 在 C# 中枚举集合的子集?

java - 打印哈希表的内容