我正在看ActorLogging here并遇到了这种语法:
def receive = LoggingReceive {
case x => ...
}
这个语法 SomeName { }
是什么意思?我知道在scala {}
中创建一个语句块,并为最后一行分配变量 . 评论解释如下:
在日志记录间隔中包含接收部分功能
是否有技术术语,以便我可以更多地了解它的用法?注意:我知道部分功能是什么 . 从评论和答案中我了解到LoggingReceive返回部分函数和apply语法 .
1 回答
在akka中,
receive
方法必须具有Receive
作为结果类型 . 所以在这里他们使用了一个对象LoggingReceive
,它有一个apply
方法定义如下:在Scala中,我们有一个语法糖结构,所以不要调用:
你可以简单地写:
还有一件事 - 在Scala中我们可以使用
{...}
括号而不是(...)
括号,因此上面的表达式可以写成:所以最后他们只是简单地用
receive
方法receive
方法包装receive
方法,该方法调用withLabel()
方法 .