scala - 范围内变量的模式匹配 (Scala)

标签 scala pattern-matching bind

在下面的代码中

val x = 5
val y = 4 match {
  case x => true
  case _ => false
}

y为真。 Scala 将 x 解释为模式匹配中的自由变量,而不是将其绑定(bind)到作用域中具有相同名称的变量。

如何解决这个问题?

最佳答案

反引号变量表示绑定(bind)作用域变量:

val x = 5
val y = 4 match { case `x` => true; case _ => false }

返回false

或者,如果变量以大写字母开头,则它会绑定(bind)到作用域变量而不用反引号。

关于scala - 范围内变量的模式匹配 (Scala),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754579/

相关文章:

scala - 从Spark查询Elastic搜索返回空Map的值

algorithm - 嘈杂数据集中的二维模式匹配

scala - flatten函数中使用的模式匹配中List[_]的解释

C++shared_ptr绑定(bind)映射转换段错误

javascript - JavaScript 构造函数类中元素的firstChild

scala - 使用 val 声明的主构造函数参数允许更改值

Scala 打字 : How to Ensure Numeric Type

java - toChanglelogStream 打印不同类型的更改

f# - 与 AND 模式不完全匹配

dns - 为什么我会收到 SOA 挖掘响应?