您可以将数组视为堆栈,
pop并将元素从头开始:
def reverse(array) rev = [] rev << array.pop until array.empty? revend
或者,如果您不喜欢修改对象,请使用更多类似功能的函数
reduce:
def reverse(array) array.reduce([]) {|acc, x| [x] + acc}end卡里在评论中提到了有关性能。功能方法可能不是最快的方法,因此,如果您真的想快速进行操作,请创建一个buffor数组,然后从头开始添加所有项:
def reverse(array) reversed = Array.new(array.count) array.each_with_index do |item, index| reversed[-(index + 1)] = item end reversedend



