Avatar
イミュータブルクラスでは自身の更新を新規インスタンスを生成して再代入で行いますが
1:59 AM
var foo = ImmutableFoo() foo = foo.update(...)
2:01 AM
これを var foo = ImmutableFoo() foo.update(...) でできて代入が不要になります。 immutable なのに mutating なのは名前がややこしいですが、 immutability は失われてないです。
2:01 AM
イミュータブルクラスで mutating func を使えても、 self 自体の置き換えはできてもインスタンスの状態は変更できないのでインスタンスの immutability は保たれます。 (edited)
2:02 AM
まあ、値型使えばいいんですが。