タグ

2022年1月30日のブックマーク (1件)

  • Rustのcloneはディープコピーなのか

    Rust LT会でcloneメソッドについての話があった。 考えると、そもそもRustでディープコピーかそうでないかを考えた経験がほとんどないので、改めてcloneの動作についてまとめてみる。 ディープコピー vs シャローコピー JavaScript等でオブジェクトがネストするような形になっているオブジェクトを単純な複製すると、コピー元のネストしたフィールドの変更がコピー先に及ぶことがある。 let obj = { a: 0, b: 1, c: { d: 10 } }; let copy = { ...obj }; // またはObject.assign({}, obj)など obj.a = 5; obj.c.d = 100; console.log(copy.a); // => 0 console.log(copy.c.d); // => 100 cというフィールド内のdというフィール

    Rustのcloneはディープコピーなのか
    koba789
    koba789 2022/01/30
    ディープコピー・シャローコピーみたいなざっくりした説明でなく、フィールドひとつひとつに対して clone 時に何が起こるか型ではっきりわかるってのは Rust のとてもいいところだよなぁ