Rubyメモ
ディープコピー
最終更新:
匿名ユーザー
-
view
deep copy
Rubyの変数は参照型になってるらしい。
array1 = [1,2,3,4] array2 = array1 array2[0] = 0 puts array1[0] puts array2[0]
とかやるとarray1[0]も変更されているのが確認できる。
ディープコピーを楽にやりたかったらMarsalを使えば出来る。
array2 = Marshal.load(Marshal.dump(array1)); # deep copy
MarshalはJavaのオブジェクトシリアライゼーションみたいなものかな。