scala怪异符号“_@&引用;意思
我想知道这个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
\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