Avatar
omochimetaru 8/19/2020 6:26 AM
最適化で map[item.name] の get から set までに map[item.name] が触られていないことを検出して、entry へのコピーを共有に書き換えてくれたらコピーされずに済みそうだけどそこまでやってくれるのかなあと思って。
6:27 AM
変数に代入する代わりに inout なクロージャに渡して別名付けるとかすればいいのかな。
そうですね。僕は protocol Modifiable を作って map[item.name]?.modify { entry in entry... entry... } って書いてます実際は
6:28 AM
2つになっても modify の入れ子にしたら書けますよ
6:29 AM
ただこういうCoWも含めたコピーの振る舞いを気にしてコードを書くのは言語としては難しいし微妙だなあと思って。