Avatar
Avatar
Kuniwak
遅レスですけど struct の stored prop に let 使うか var 使うか議論、私の意見は:
  • その stored prop を型エラーにならない範囲でどんな値を入れても健全性条件を満たすならば var にする
  • それ以外は let にする
です。私はかなり後者の方法を使うので体感としては let の方が多い印象です。なお niw さんも omochi さんも健全性条件(あるいはクラス不変条件)という言葉を使っていませんが、ここではちゃんと健全性条件って言ったほうがいいと思います。 蛇足ですが、静的型を唯一の健全性条件を守らせる方法だと思う方はたくさんいるとおもいます(過去の自分もそうでした)。実際には健全性条件検査の方法として静的型検査はかなり粗く弱いです。動的検査(init? や private init + static func で validation した後で private init 叩くやつ)で健全性条件を検査すると静的型検査よりかなり強く検査できるのでおすすめです(このスタイルになると struct でも let が多くなります)。例えば Email アドレス型やユーザー名型とかを考えたとして、これを静的型検査で健全性条件を検査するのは無理ゲーです。ですが動的検査なら簡単にできます。
(edited)
馴染みがないですが、値の取る範囲や条件の事をそう言うんですね。