irb(main):034:0> y=[2]
=> [2]
irb(main):035:0> x=y
=> [2]
irb(main):036:0> y=y+[3]
=> [2, 3]
irb(main):037:0> y
=> [2, 3]
irb(main):038:0> x
=> [2]
xは変化していない。
irb(main):039:0> x=y
=> [2, 3]
irb(main):040:0> y[0]=1
=> 1
irb(main):041:0> x
=> [1, 3]
xは変化した。
irb(main):042:0> x.object_id
=> -608181768
irb(main):043:0> y.object_id
=> -608181768
同じオブジェクトを見てる。
irb(main):044:0> y=y+[3]
=> [1, 3, 3]
irb(main):045:0> y.object_id
=> -608223068
irb(main):046:0> x.object_id
=> -608181768
違うオブジェクトを見てる。
>> a=[1,2,3]
>> def henka(x)
>> x[0]=100
>> end
>> henka(a)
>> a
=> [100, 2, 3]
変化しました。
>> def henka2(x)
>> x+[100]
>> end
>> henka2(a)
>> a
=> [100, 2, 3]
変化しませんでした。