在下面的代码中
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/