私はJavaから来て、ほとんどのJavaプログラマのように、私は可能な限りフィールドのアクセスレベルを最小限にすることを提案する、J. Blochの効果的なJavaを読んでいます。スカラの公開値の使用
trait Actor {
type Receive = Actor.Receive
implicit val context: ActorContext = {
//ommited for simplicity
}
implicit final val self = context.self //MUST BE A VAL, TRUST ME
//...
}
それはScalaで公共val
Sを使用するのが一般的である:私は種類のこのようなakka
使用パブリックヴァルスなどのような強力なフレームワークがあるという事実に驚いたのか?そして、これのための大会は何ですか? Javaでは、一般的な環境下でフィールドを公開することは間違いありません。 (もちろん、プライベートフィールドが実用的でない場合もありますが、それは間違いなく例外です)。
Scalaでは、統一アクセス原理によくお伝えしますhttp://joelabrahamsson.com/learning-scala-part-nine-uniform-access/また、この質問を参照してくださいhttp://stackoverflow.com/questions/39095679/ using-class-parameters-to-assign-field-value – sebszyller
考えられる理由の1つ:Javaは不変の値を適切にサポートしていません。したがって、いくつかの外部コードがそれらを変更する危険性があります。 scalaのValsは不変であり、Scalaはvarsの代わりにvalの使用を奨励します。したがって、不変のvalを外部に公開することに害はありません。 – Samar