scala怪异符号“_@&引用;意思

scala怪异符号“_@&引用;意思,scala,lift-json,Scala,Lift Json,我想知道这个scala符号是什么:\u@ (搜索引擎无法处理奇怪的字符,所以很难在谷歌上找到任何东西…) 以下是上下文: def doNodeParse(json: JValue): TreeNode = { json match { case JObject(List(JField("Condition", JObject(List(JField("var", JString(variableName)), JField("Operation", JString("LT

我想知道这个scala符号是什么:
\u@

(搜索引擎无法处理奇怪的字符,所以很难在谷歌上找到任何东西…)

以下是上下文:

def doNodeParse(json: JValue): TreeNode = {
    json match {
        case JObject(List(JField("Condition", JObject(List(JField("var", JString(variableName)), JField("Operation", JString("LT")), JField("Value", JDouble(threshold))))),
                JField("onTrue", _@ onTrue),
                JField("onFalse", _@ onFalse),
                JField("onMissing", _@ onMissing)
                )) =>
                LessThanNode(variableName, threshold, doNodeParse(onTrue), doNodeParse(onFalse), doNodeParse(onMissing))

        case _ => {
            throw new Error("failed parsing json!")
          }
    }
}

(类型为
onTrue
onFalse
onMissing
的是
JsonAST.JValue

在模式匹配中省略
\uu
@
之间的空格是合法的,因此在这种情况下,它与

    case JObject(List(JField("Condition", JObject(List(JField("var", JString(variableName)), JField("Operation", JString("LT")), JField("Value", JDouble(threshold))))),
            JField("onTrue", _ @ onTrue),
            JField("onFalse", _ @ onFalse),
            JField("onMissing", _ @ onMissing)
            )) =>
            LessThanNode(variableName, threshold, doNodeParse(onTrue), doNodeParse(onFalse), doNodeParse(onMissing))

@运算符的作用是将左侧匹配的值别名为右侧匹配的名称。

?没有
符号,但没有间隔符号
(模式别名)哦,这是模式匹配!这行太长了,我以为它是在方法调用中。那么
\uu
是一个被丢弃的变量吗?我很困惑为什么你会做一个别名只是为了把它扔掉。。。为什么不直接使用'JField(“onTrue”,onTrue)`呢?规范化的形式实际上是另一种方式,
onTrue@
等等,也就是您在
-Xprint:typer
中看到的。我使用它来禁用
-Ywarn unused:patvars