valはJavaのfinalに似ているため、ほとんどのJavaオブジェクト参照はfinalとしてマークする必要があります。これは、valを使用することがScalaの良い習慣であるためです。
3 に答える
確かにfinal
、Javaでクラス変数を作成し、可能な限り不変性を促進することをお勧めします。
ローカル変数(メソッドパラメータなど)を必要のないときにfinalとマークする必要があるかどうかについては、スタイルの問題です。個人的には、特に必要でない限り(たとえば、匿名の内部クラスで変数にアクセスできるようにするため)、使用すると混乱する傾向があると思います。
参照はできるだけ頻繁に最終的なものにする必要があります。これにより、実行時の最適化が向上し、「契約上」、ユーザー(またはコードの後続のメンテナー)が予期せずに参照を変更しないようにすることができます。私にとって、それはあなたが物事を可能な限りプライベートにするべきであるという意味で「プライベート」に似ています。コードベースの他の部分に影響を与えることなくリファクタリングする将来の柔軟性を提供します(波及効果を最小限に抑えます)。
この決定のほとんどとして、の使用法はfinal
コーディング規約の議論です。
final
一度だけ割り当てられた場合、私自身がすべてのパラメーターと変数を作成します。コードの可読性が上がると思います。
Eclipseには、可能な限りSaveAction
追加する必要final
があります。
たぶん、キーワードはコンパイラが可能な最適化を検出するのを助けるでしょう(あるいは将来のコンパイラはこのヒントを使うことができるでしょう)