在Scala中@是什么意思?

在Scala中@是什么意思?,scala,pattern-matching,partialfunction,Scala,Pattern Matching,Partialfunction,在研究akka的来源时,我在akka.event.slf4j.SLF4JLoggeractor中发现了以下内容: def receive = { //... case event @ Warning(logSource, logClass, message) ⇒ withMdc(logSource, event) { Logger(logClass, logSource).warn("{}", message.asInstanceOf[AnyRef]) }

在研究
akka
的来源时,我在
akka.event.slf4j.SLF4JLogger
actor中发现了以下内容:

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]) }
    //...
}

我不太明白什么是
@
符号。它不是一个方法,并且在作用域中并没有
事件的声明<代码>警告
信息
调试
都是具有应用方法的对象。

称为变量绑定:

除了独立变量模式外,还可以添加 可变到任何其他模式。您只需编写变量名 在符号(@)处,然后是图案。这将为您提供一个变量绑定 图案这种模式的意义是执行模式匹配 正常情况下,如果模式成功,则将变量设置为 与简单变量模式一样匹配对象


它被称为变量绑定:

除了独立变量模式外,还可以添加 可变到任何其他模式。您只需编写变量名 在符号(@)处,然后是图案。这将为您提供一个变量绑定 图案这种模式的意义是执行模式匹配 正常情况下,如果模式成功,则将变量设置为 与简单变量模式一样匹配对象


@c1moore哦,没错,我没发现有关联answer@c1moore哦,对了,没有找到相关的答案