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