我有一个间隔让我们说(0..3)其中下一个元素是+1,除非是最后一个。然后下一个是0.我通过下面的代码解决了它。只是想知道是否还有其他事情: - )
def next(max,current)
if current+1 == max
return 0
else
return current+1
end
end
请注意,当代码运行时,我需要能够在我的示例0..3中随时分配任何“有效数字”。
答案 0 :(得分:6)
Ruby 1.8.7具有可枚举#cycle
(0..3).cycle{|x| puts x}
将永远循环。
我觉得这很酷:
looper = (0..3).cycle
20.times { puts looper.next }
答案 1 :(得分:3)
怎么样:
def next(max,current)
(current+1) % max
end
除非max==0
,否则应该有效,但你可以很容易地抓住并保释。 :)
快乐的编码!
编辑:您还应该知道next
是保留的关键字(请参阅this overview),为您的方法选择其他名称是明智的。