【发布时间】:2017-04-05 10:28:37
【问题描述】:
在研究akka 的来源时,我在akka.event.slf4j.SLF4JLogger 演员中发现了以下内容:
def receive = {
//...
case event @ Warning(logSource, logClass, message) ⇒
withMdc(logSource, event) { Logger(logClass, logSource).warn("{}", message.asInstanceOf[AnyRef]) }
case event @ Info(logSource, logClass, message) ⇒
withMdc(logSource, event) { Logger(logClass, logSource).info("{}", message.asInstanceOf[AnyRef]) }
case event @ Debug(logSource, logClass, message) ⇒
withMdc(logSource, event) { Logger(logClass, logSource).debug("{}", message.asInstanceOf[AnyRef]) }
//...
}
我不太明白@ 符号是什么。它不是一种方法,并且在范围内没有 event 的声明。 Warning、Info 和 Debug 都是具有 apply 方法的对象。
【问题讨论】:
-
@c1moore 哦,对了,没找到相关答案
标签: scala pattern-matching partialfunction