是否可以检查 Ruby 中迭代器的位置



有没有办法获取迭代器的位置(它迭代了多少次)?

values = (1..100)
values.each do |value|
  if ... % 10 == 1 then puts iterator.count end
end

还是您必须明确计数:

values = (1..100)
counter = 0
values.each do |value|
  if counter % 10 == 1 then puts counter end
  counter += 1
end

有没有更清洁的方法?

红宝石 1.9.2

使用 each_with_index

values.each_with_index do |value, idx|
  puts idx if idx % 10 == 1
  # do something else
end

或者您可以使用更冷的替代品

values.each.with_index do |value, idx|
  # work
end

我称它为更酷,因为#with_index相对鲜为人知,它可以与map(和其他方法)结合使用以产生有趣的结果。

相关内容

  • 没有找到相关文章

最新更新