我觉得这是一个愚蠢的问题,但无论如何我都会问......我正在尝试做这样的事情:
def func(x: Int, y: Int) = {
val value: Int = 0 //from config
(x, y) match {
case (value, value) => "foo"
case _ => "bar"
}
}
但是repl和intelliJ都警告我。 (例如“变量模式后的模式不匹配”;“可变模式的可疑模糊”等)。是否有正确的方法来匹配非文字值?
答案 0 :(得分:14)
是的!有两种方法可以获得你想要的东西。第一种是将要匹配的变量的名称大写:
def func(x: Int, y: Int) = {
val Value: Int = 0 // from config
(x, y) match {
case (Value, Value) => "foo"
case _ => "bar"
}
}
如果你不想走这条路(因为它不是用来大写变量名等的惯用语),你可以在比赛中反击它们:
def func(x: Int, y: Int) = {
val value: Int = 0 // from config
(x, y) match {
case (`value`, `value`) => "foo"
case _ => "bar"
}
}
我建议在大多数情况下使用反引号。