在python中,我可以从任何可迭代的中获取迭代器iter()
;然后我可以打电话next(my_iter)
来获取下一个元素。
ruby/rails 中是否有任何等价物?
在python中,我可以从任何可迭代的中获取迭代器iter()
;然后我可以打电话next(my_iter)
来获取下一个元素。
ruby/rails 中是否有任何等价物?
.to_enum
将产生枚举数。例如,a.to_enum
将产生枚举器,您可以从那里迭代它a.to_enum.each{|x| p x}.
或者没有循环,您可以使用类似的元素
p a.to_enum.next
没有循环:
words = %w(one two three four five)
my_iter = words.each
puts my_iter.next # one
puts my_iter.next # two
但是不在循环中的迭代器有什么意义呢?这就是他们存在的全部理由......
Ruby 中有很多迭代器,如下所示:
每个迭代器:此迭代器返回数组或散列的所有元素。每个迭代器一个一个地返回每个值。句法:
collection.each do |variable_name|
# code to be iterate
continue if condition # equivalent next in python
end
在上述语法中,集合可以是范围、数组或散列。