Actor
черты Scala определяется как так,Переопределения Supervisorstrategy как вал в бетоне Актера
/**
* 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
?
Это из-за соображений памяти, как мы не хотим эту оценку каждый раз, когда метод вызывается?
Посмотрите [здесь] (http://stackoverflow.com/questions/19642053/when-to-use-val-or-def-in-scala-traits). –