gpt4 book ai didi

scala - 可变参数的默认空大小写

转载 作者:行者123 更新时间:2023-12-01 07:45:53 25 4
gpt4 key购买 nike

假设您希望在调用带有可变参数的方法时使用模式匹配,如下所示:

def foo(bar: Int*) = ???

val x = false
foo(x match {
case true => 1
case _ =>
})

运行上述代码会导致类型不匹配错误,因为 foo 需要 Int 类型的参数,但在默认情况下却发现 Unit 。另一方面,删除默认情况会导致警告,表明匹配可能并不详尽,这是正确的。

我的问题是,如何为匹配提供默认情况(这将导致在不带任何参数的情况下调用foo())?

最佳答案

您可以捕获序列中的匹配结果,并将缺少参数的情况表示为空参数。然后将结果放入参数中:

val x = true
foo((x match {
case true => Seq(1)
case _ => Seq.empty
}):_*)

关于scala - 可变参数的默认空大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37240144/

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