當我有下面的方法:紅寶石參考
def n_times(thing)
lambda { |n| thing * n }
end
和我把它這樣:
x = [:a]
p1 = n_times(x)
x = [:b]
p p1.call(3) # => [:a, :a, :a]
x將不被改變,輸出將是[:A]。爲什麼?
在做這樣的事情.pop實際上,X將被改變:
x = [:a]
p1 = n_times(x)
x.pop
p p1.call(3) # => []
是因爲[:B]是一個新的對象?