Avatar
↑の登校にはそこまで書かれてませんでした・・・。僕がおもちと話す中で感じてたことかも?
1:47 AM
たとえば、 idlet にしても↓はできてしまうみたいな話ですね。 struct Foo: Identifiable { let id: Int var value: String } struct Bar { var foo: Foo } var bar = Bar(foo: Foo(id: 1, value: "ABC")) //bar.foo.id = 999 // NG bar.foo = Foo(id: 999, value: bar.foo.value) // OK
1:49 AM
同じインスタンスを変更したのか、新しいインスタンスに差し替えたのかは、共有されていなければ区別できない。
投稿のこのあたりの意見に通づることかと。
1:52 AM
var が適切でない既知パターンとしては複数のプロパティが連動しているケースで片方だけ変更された場合に困るということがありましたが( didSet 等で辻褄を合わせるか、変更を禁止するか)、 id はキーとしての利用が想定されているので Dictionary に入れた後で変更されると困るというのは新しいパターンかなと。