プログラミング的なSomething

プログラミング的なSomething

ITエンジニア(?)目線で生活・自転車・トレーニング話を綴ります

shalow copyとdeep copyに関して

shalow copyとdeep copy

Rubyの変数は参照型であることに起因します。

a = ["title","content"]
b = a.dup

これでb[0].upcase!なんかした日には変数aも変更されます。参照型だから。 これがdeep copyです。

a = ["title","content"]
b = Marshal.load(Marshal.dump(a))

Marshalモジュールを使えばb[0].upcase!しても大丈夫。 これがdeep copyです。

以上。