Scala 中的Actortrait 是这样定义的,
/**
* 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?
是因为内存方面的考虑,比如我们不希望每次调用该方法时都进行此评估吗?