当我有下面的方法:红宝石参考
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]是一个新的对象?