gpt4 book ai didi

scala - 非文字值的模式匹配

转载 作者:行者123 更新时间:2023-12-04 22:04:39 25 4
gpt4 key购买 nike

我觉得这是一个愚蠢的问题,但我还是会问......我正在尝试做这样的事情:

def func(x: Int, y: Int) = {
val value: Int = 0 //from config
(x, y) match {
case (value, value) => "foo"
case _ => "bar"
}
}

但是 repl 和 intelliJ 都向我发出警告。 (例如“变量模式之后的模式无法匹配”;“变量模式的可疑阴影”等)。是否有正确的方法来匹配非文字值?

最佳答案

是的!有两种方法可以得到你想要的东西。第一个是将您希望匹配的变量的名称大写:

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"
}
}

我建议在大多数情况下使用反引号。

关于scala - 非文字值的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25344564/

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