结论: 赋值 非 拷贝
Ruby1.9.3
例1
a = [1,2,3]
b = a #只是引用,不是拷贝
a << 4
puts a #=> [1,2,3,4]
puts b #=> [1,2,3,4]
例2
a = [1,2,3]
b = a
b << 4
puts a #=> [1,2,3,4]
puts b #=> [1,2,3,4]
例3
a = [1,2,3]
b = a
b = [] #=> []
a #=> [1,2,3] #赋空值的时候,两者是不同步的
原因: b = [] 操作是新建一个变量b,这个b已经不是刚才的b,可通过b.object_id分别这两个变量