gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:30:16 32 4
gpt4 key购买 nike

我想知道这个 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/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com