如何解决Ruby的等效于Python的iter/ next是什么?
在python中,我可以使用iter()
从任何可迭代的迭代器中获取一个迭代器;然后我可以调用next(my_iter)
来获取下一个元素。
在红宝石/铁轨中是否有等同物?
解决方法
.to_enum
将产生枚举数。例如,a.to_enum
将产生枚举数,您可以像a.to_enum.each{|x| p x}.
那样从那里进行迭代
或者没有循环,您可以采用类似
的元素p a.to_enum.next
,
Ruby中有许多迭代器,如下所示:
- 每个迭代器
- 收集迭代器
- Times迭代器
- 最多迭代器
- 向下迭代器
- Step Iterator
- Each_Line迭代器
- 解释迭代器的类型
每个迭代器:此迭代器返回数组或哈希的所有元素。每个迭代器一个一个地返回每个值。 语法:
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
但是没有循环的迭代器有什么意义呢?这是他们整个 raison d'etre ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。