我來自Java,和大多數Java程序員一樣,我閱讀J. Bloch的有效Java,他建議儘可能最小化字段訪問級別。我被這樣的事實那種驚訝的是像akka
使用公共瓦爾斯這樣那樣的強大的框架:Scala使用公共vals
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
//...
}
它是常見的斯卡拉使用公共val
S'這是什麼約定?因爲在Java中,我絕對不會在一般情況下公開字段。 (當然,可能會出現私人領域不切實際的情況,但這絕對是個例外)。
在斯卡拉,統一訪問原則通常是建議http://joelabrahamsson.com/learning-scala-part-nine-uniform-access/另外,請參閱此問題http://stackoverflow.com/questions/39095679/ using-class-parameters-to-assign-field-value – sebszyller
可能的原因之一:Java對於不可變的值沒有很好的支持。所以有一些外部代碼會改變它們的危險。斯卡拉的瓦爾斯是不可改變的,斯卡拉鼓勵使用vals而不是瓦爾斯。因此,向外界揭露不可變的瓦爾沒有任何傷害。 – Samar