Avatar
はい、始めます!よろしくおねがいします。
👏 16
1:14 PM
あまり僕から話すことは用意してなくて、自由に話し合いたいんですけど、
1:14 PM
最初に若干だけ僕が考えていることを話すと
1:14 PM
すごく単純化して考えると、 Swift の値型はミュータブルクラスと
1:14 PM
イミュータブルクラスのいいとこどりをしたような存在だなと考えてます。
1:15 PM
参照型と値型はインスタンスが共有されるかどうかという違いがあるわけですが
1:15 PM
それ自体はどっちが優れているというわけではないんですが、
1:15 PM
ミュータブルクラスだと振る舞いが型で表現できないケースがあるのが微妙に思ってます。
1:16 PM
class Group { ... } class User { ... } let group: Group = ... let owner: User = group.owner owner.age += 1 // 何が起こる?
1:16 PM
Group が内部に保持してるインスタンスをそのまま返してたら Groupownerage もインクリメントされますけど
🎂 3
1:17 PM
もし防御的コピーをしてたりすると owner.age += 1group に影響を与えません。 (edited)