Ruby 等同于 Python 的 iter()/next() 是什么?

What is the Ruby equivalent of Python's iter()/next()?

在 python 中,我可以使用 iter() 从任何可迭代对象中获取迭代器;然后我可以调用 next(my_iter) 来获取下一个元素。

在ruby/rails中是否有任何等价物?

.to_enum 将生成枚举器。例如 a.to_enum 将生成枚举器,您可以从那里迭代它,例如 a.to_enum.each{|x| p x}.

或者不用循环,你可以取这样的元素

p a.to_enum.next

Ruby中有很多迭代器如下:

  1. 每个迭代器
  2. 收集迭代器
  3. 时间迭代器
  4. Upto 迭代器
  5. Downto 迭代器
  6. 步骤迭代器
  7. Each_Line迭代器
  8. 解释迭代器的类型

Each Iterator:此迭代器returns 数组或散列的所有元素。每个迭代器 returns 每个值一个一个。 语法:

collection.each do |variable_name|
   # code to be iterate
   continue if condition # equivalent next in python 
end

在上述语法中,集合可以是范围、数组或散列。

引用自https://www.geeksforgeeks.org/ruby-types-of-iterators/

没有循环:

words = %w(one two three four five)

my_iter = words.each

puts my_iter.next  # one
puts my_iter.next  # two

但是不在循环中的迭代器有什么意义呢?这是他们的全部 存在理由...