0
looper = (0..3).cycle
20.times { puts looper.next }

我能以某种方式找到 3 个中的下一个吗?我的意思是如果我可以.next在任何给定时间获得任何特定元素。不仅仅是从第一个元素开始的显示循环。

更新

当然,在发布我的问题之前,我浏览了 ruby​​ 文档。但我没有在那里找到答案......

更新2

输入

looper = (0..max_cycle).cycle

max_cycle= 每次脚本运行时都可能不同的变量

looper= 始终来自区间 (0..max_cycle) 的变量,但脚本启动时的当前值可以是任何值。它基于Time.now.hour

输出

我想知道脚本运行期间任何时候的.nextlooper

4

2 回答 2

4

你的问题不是很清楚。也许你想要这样的东西?

(current_value + 1) % (max_cycle + 1)

例如,如果max_cycle = 3您将有以下输出:

current_value    returns
      0             1
      1             2
      2             3
      3             0
于 2010-04-14T00:08:48.413 回答
2

http://ruby-doc.org/core-1.9/classes/Enumerable.html#M003074

于 2010-04-13T21:55:37.657 回答