immutableにより再代入を防ぎたい理由
kuroma6666.icon
コンパイル時・静的解析の仕組みで再代入検出を行いたい
人間はアホで愚かなので、mutableな変数に対して、うっかり再代入することがある 読み手に変更する意思が無いことを明示する
ソースコードは書く時より、読まれる回数の方が断然多い
書く手間を惜しんで、再代入不可という意味合いの明示を怠るべきでない
ちなみに、「むやみやたらconstを付けるべきでない(immutableにすべきでない)」という主張は、自分が全知全能であり、そういった仕組みを取り入れなくても困らずヒューマンエラー起因での不具合を出したことがない奴だけが主張できます
厳密にはC言語のconstはimmutableではない 言語仕様上、再代入できてしまうことに対して、「再代入しないこと」といった固有の規約や連絡だけでは束縛は不可能
言語仕様上出来上がっている仕組みと環境で縛るべきだよ
メリットは当然ある
変数の使い回しを防ぎ、変数が負う責任と役割を明確にできる
参照透過性の向上