有没有一种优雅的方式来实现一个枚举数的末尾?
例如,
a = (1..10).to_a
e = a.each
e.next # should yield 1
while e.next
# do something
end
当然, 当您到达枚举数末尾时,e 会引发StopIteration 。
有没有一种很好的方法可以在没有救援的情况下打破这个 while 循环?我知道我可以只说 e.each (或者根本不使用枚举器),但是对于我的具体问题,我想在前几次迭代中做一些特别的事情,然后在最后几个迭代中做一些一般性的事情。
我想要一种查看下一个值并获取nil
而不是错误的方法。
有小费吗?可能有一些明显的东西我错过了......
注意。我不必使用枚举器,但这似乎是解决我的问题的最简单方法。因此,如果您有一个非枚举器解决方案(用于迭代可枚举),请随时分享。(在那张纸条上,也许我应该只使用 each 或 each_with_index 并将计数器用于特殊情况......)