Какой самый простой способ создать повторяющуюся последовательность а-ля: ['a', 'b'] [2] = 'a' - PullRequest
0 голосов
/ 20 января 2010

Я задаюсь вопросом, есть ли встроенный метод Ruby для получения n-го числа в последовательности из 12 элементов, независимо от того, насколько велико n.

Например, если у меня есть последовательность (изображенная в виде массива ниже), которая имеет 3 элемента, и если я пытаюсь получить доступ к четвертому элементу, она начинается с начала. Вот метод, который сделает это, но мне интересно, есть ли встроенный способ сделать это.

Array.class_eval do
  def sequenced(n)
    n/size >= 1 ? fetch(n%size) : fetch(n)
  end
end

['a', 'b', 'c'].sequenced(3) => 'a'

Ответы [ 2 ]

3 голосов
/ 20 января 2010

Зачем вам нужен особый случай n <размер дела? Просто используйте <code>fetch(n%size)

1 голос
/ 21 января 2010

В Ruby 1.9:

['a', 'b', 'c'].cycle.take(size).last
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...