ScalaのActor
trait は次のように定義されています。
/**
* User overridable definition the strategy to use for supervising
* child actors.
*/
def supervisorStrategy: SupervisorStrategy = SupervisorStrategy.defaultStrategy
ただし、具体的なアクターのすべてのサンプルコードは次のように定義されていることがわかります。
override val supervisorStrategy = OneForOneStrategy(loggingEnabled = false) {
...
}
私が理解しようとしているのは、なぜ supervisorStrategy
オーバーライドされているのval
ですか?
としてオーバーライドしてみませんdef
か?
メソッドが呼び出されるたびにこの評価が必要ないように、メモリの考慮事項のためですか?