假设我有一个大小为5的数组。我想以0-4之间的某个数字作为输入,并从该数字开始迭代数组。
例如,如果输入的数字是3,我希望按以下方式进行迭代:
arr[3]
arr[4]
arr[0]
arr[1]
arr[2]
我可以想到很多方法来实现这个目标,但是有没有符合 Ruby 语言特色 的方法呢?
你可以使用1.9.2版本中的Array#rotate
方法。
[4,3,6,7,8].rotate(2).each{|i|print i}
67843
在 Ruby 中有很多种方法可以做到这一点。不确定哪种是“标准”的 Ruby 方法。也许是:
arr.size.times do |i|
puts arr.at((3 + i).modulo(arr.size))
end
假设您的索引为i:
(arr.from(i) + arr[0,i]).each