我在某些序列中间有一个枚举器:
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 中循环如此行?