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中有许多迭代器,如下所示:

  1. 每个迭代器
  2. 收集迭代器
  3. Times迭代器
  4. 最多迭代器
  5. 向下迭代器
  6. Step Iterator
  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/

,

没有循环:

words = %w(one two three four five)

my_iter = words.each

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

但是没有循环的迭代器有什么意义呢?这是他们整个 raison d'etre ...

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...