Avatar
Avatar
omochimetaru
@niw おお〜素晴らしい取り組みですね。読みました。 特にnominal tupleというキーワードによって分かりやすくなってると思います プロパティをletにしても迂回できて意味がないこと、 何かmutationを追加したくなったときにその迂回が煩雑になるだけであること、 varが有効な例外があること が書かれていてバッチリだと思います。 個人的には人々が let を付ける動機として、 Javaの時代(やそれを継承した参照ベース言語のプラクティス)の immutable object pattern の影響を受けていて、 盲目的に「プロパティは定数にするべき」と思い込んでいる場合があると思っています。 それが value semantic な Swift の struct においては適用できない事、 つまり、(例としてSwiftの) class と struct では変数自体の mutability とオブジェクトのプロパティのmutability の関係が異なる というか var base struct がすでに immutable object pattern と等価な振る舞いをする、 という事を説明するといいのかなと思っていますが、冗長・蛇足かもしれません。
なるほど、class と struct の違いは最後にちょっとだけ入れたのですがもうちょっと書いた方がいいかな。