как работает Enumerable # цикл? (Рубин) - PullRequest
0 голосов
/ 14 апреля 2010
looper = (0..3).cycle
20.times { puts looper.next }

можно ли как-нибудь найти следующий из 3? Я имею в виду, могу ли я получить .next любого конкретного элемента в любой момент времени. Не просто отображать цикл, который начинается с первого элемента.

UPDATE

Конечно, я отправил хотя бы ruby ​​ doc , прежде чем опубликовать свой вопрос. Но я не нашел там ответа ...

UPDATE2

ввод

looper = (0..max_cycle).cycle

max_cycle = переменная, которая может отличаться при каждом запуске скрипта

looper = переменная, которая всегда находится в интервале (0..max_cycle), но текущее значение при запуске скрипта может быть любым. Он основан на Time.now.hour

выход

Я хочу знать .next значение looper в любое время во время выполнения скрипта

Ответы [ 2 ]

4 голосов
/ 14 апреля 2010

Ваш вопрос не очень понятен. Может быть, вы хотите что-то подобное?

(current_value + 1) % (max_cycle + 1)

Если, например, max_cycle = 3, у вас будет следующий вывод:

current_value    returns
      0             1
      1             2
      2             3
      3             0
2 голосов
/ 14 апреля 2010
...