小编vvc*_*vch的帖子

在Ruby中遍历其余的Enumerator

我在某些序列中间有一个枚举器:

enum = (1..9).each
first = enum.next
second = enum.next
Run Code Online (Sandbox Code Playgroud)

现在,我要遍历序列的其余部分(3..9个数字)。但是看似显而易见的解决方案(例如在python中工作)从序列的开头而不是第三项重新开始:

for item in enum
    puts item
end
# prints 1..9 instead of 3..9
Run Code Online (Sandbox Code Playgroud)

我发现工作解决方案似乎很丑陋:

begin
    while item=enum.next
        puts item
    end
rescue StopIteration
end
Run Code Online (Sandbox Code Playgroud)

那么问题来了:是否有更好的红宝石解决方案可以做到这一点?为什么for在Ruby 中循环如此行?

ruby iterator for-loop enumerator

4
推荐指数
1
解决办法
389
查看次数

标签 统计

enumerator ×1

for-loop ×1

iterator ×1

ruby ×1