我发现自己想知道是否有一个内置的Ruby方法来获取12个元素序列中的第n个数字,无论'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'
答案 0 :(得分:3)
为什么你需要特殊情况n<尺寸案例?只需使用fetch(n%size)
答案 1 :(得分:1)
在Ruby 1.9中:
['a', 'b', 'c'].cycle.take(size).last