2

在python中,我可以从任何可迭代的中获取迭代器iter();然后我可以打电话next(my_iter)来获取下一个元素。

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

4

3 回答 3

5

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

或者没有循环,您可以使用类似的元素

p a.to_enum.next
于 2020-08-31T06:14:40.280 回答
1

没有循环:

words = %w(one two three four five)

my_iter = words.each

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

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

于 2020-08-31T07:52:06.683 回答
0

Ruby 中有很多迭代器,如下所示:

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

每个迭代器:此迭代器返回数组或散列的所有元素。每个迭代器一个一个地返回每个值。句法:

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/

于 2020-08-31T06:15:10.847 回答