gpt4 book ai didi

scala - Scala 构造说明

转载 作者:行者123 更新时间:2023-12-02 08:06:54 25 4
gpt4 key购买 nike

我正忙于对一些遗留 Scala/Akka 代码进行重大重构任务,并且被一个我无法解释的结构所困扰,这阻碍了我的努力:

trait PerRequestCreator {
this: Actor =>
def perRequest(<some_params>): ActorRef = { body of function }
}

然后这样使用:

class SomeActor extends PerRequestCreator with Actor {
def processRequest: Route = {
perRequest(<some_params_passed>)
}
}

我无法理解特征的 this: Actor => ... 部分。

最佳答案

它叫做self-type,它表达了对PerRequestCreator 的要求。混合到扩展的东西中 Actor .

它很有用,因为现在您可以使用 Actor 中定义的任何内容在 PerRequestCreator 的定义中编译器会检查你是否只能扩展 PerRequestCreator如果您还扩展 Actor .

例子:

class SomeClass extends PerRequestCreator            // this won't compile
class SomeClass extends PerRequestCreator with Actor // this is ok

您可以在这里阅读更多相关信息:https://docs.scala-lang.org/tour/self-types.html

关于scala - Scala 构造说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50620109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com