さわっても熱くない花火

ちょっとした驚きを食べながら生きています

Rubyでディープクローンを作る

Rubyにせよ、C#にせよ、インスタンスの完全なクローンを作るのはオブジェクトに実装されているcloneメソッドを呼ぶだけではうまくいかないことが多々あります。いわゆるディープコピーってやつですね。

Rubyでのやり方がわからなかったので、ちょっと調べてみました。
思ったより簡単でした。

bbb=Marshal.load(Marshal.dump(aaa))  #aaaのディープクローンを作成してbbbに格納する

RubyにもMarshalなんてあるんですねー