Pergunta

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

Posso encontrar de alguma forma o próximo de 3? Quero dizer se eu puder conseguir .next de qualquer elemento em particular a qualquer momento. Não apenas o loop de exibição que começa com o primeiro elemento.

ATUALIZAR

Claro que fui rubi Doc antes de postar minha pergunta. Mas eu não encontrei resposta lá ...

Atualização2

entrada

looper = (0..max_cycle).cycle

max_cycle = variável que pode ser diferente toda vez que o script é executado

looper = variável que é sempre do intervalo (0..max_cycle), mas o valor atual quando o script inicia pode ser qualquer. É baseado em Time.now.hour

resultado

Eu quero saber .next valor de looper a qualquer momento durante o tempo de execução do script

Foi útil?

Solução

Sua pergunta não está muito clara. Talvez você queira algo assim?

(current_value + 1) % (max_cycle + 1)

Se, por exemplo, max_cycle = 3 Você terá a seguinte saída:

current_value    returns
      0             1
      1             2
      2             3
      3             0
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top