【发布时间】:2011-08-23 10:20:48
【问题描述】:
在下面的代码片段中,数组deck 应该等于[6,9,5,6,5,1,2],因为Ruby 通过引用传递数组。方法调用后,deck 的值不会改变。这是为什么呢?
def count_cut!(deck)
s1, s2 = deck[0, deck.last], deck[deck.last..-2]
deck = s2 + s1 + [deck.last]
end
deck = [5, 1, 6, 9, 5, 6, 2]
count_cut!(deck)
p deck
我正在使用 Ruby 1.9.2-p180。
【问题讨论】: