1

valはJavaのfinalに似ているため、ほとんどのJavaオブジェクト参照はfinalとしてマークする必要があります。これは、valを使用することがScalaの良い習慣であるためです。

4

3 に答える 3

2

確かにfinal、Javaでクラス変数を作成し、可能な限り不変性を促進することをお勧めします。

ローカル変数(メソッドパラメータなど)を必要のないときにfinalとマークする必要があるかどうかについては、スタイルの問題です。個人的には、特に必要でない限り(たとえば、匿名の内部クラスで変数にアクセスできるようにするため)、使用すると混乱する傾向があると思います。

于 2013-01-03T19:19:30.213 に答える
1

参照はできるだけ頻繁に最終的なものにする必要があります。これにより、実行時の最適化が向上し、「契約上」、ユーザー(またはコードの後続のメンテナー)が予期せずに参照を変更しないようにすることができます。私にとって、それはあなたが物事を可能な限りプライベートにするべきであるという意味で「プライベート」に似ています。コードベースの他の部分に影響を与えることなくリファクタリングする将来の柔軟性を提供します(波及効果を最小限に抑えます)。

于 2013-01-03T19:19:11.080 に答える
0

この決定のほとんどとして、の使用法はfinalコーディング規約の議論です。

final一度だけ割り当てられた場合、私自身がすべてのパラメーターと変数を作成します。コードの可読性が上がると思います。

Eclipseには、可能な限りSaveAction追加する必要finalがあります。

たぶん、キーワードはコンパイラが可能な最適化を検出するのを助けるでしょう(あるいは将来のコンパイラはこのヒントを使うことができるでしょう)

于 2013-01-03T19:20:34.157 に答える