scala 奇怪的符号 "_@"意思

标签 scala lift-json

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

(搜索引擎无法识别奇怪的字符,因此很难在 google 上找到任何内容...)

这里是上下文:

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!")
          }
    }
}

(onTrueonFalseonMissing的类型为JsonAST.JValue)

最佳答案

在模式匹配中省略 _@ 之间的空格是合法的,所以在这种情况下它与

    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))

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

关于scala 奇怪的符号 "_@"意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46286448/

相关文章:

scala - 从返回类型推断泛型隐式参数的类型

json - 为什么在使用lift-json时在我的json字符串中得到 "$outer"?

json - lift-json 3.0.1 将 json 数组转换为逗号分隔字符串的代码片段编译错误

scala - Lift-json 将 'type' 字段的 json 提取到 case 类中

scala - 在 Scala 中,如何将 java 接口(interface)混入 Scala 代码

sql - 优化 Spark 中的 Hive 表加载时间

scala - 使用 anorm 创建动态 SQL

scala - 处理模板中的条件内容的首选 Lift 方式是什么?

scala - lift-json XPath\\operator 根据 num 匹配有不同的返回类型

json - 在 Scala 中提取 json