假设我有一个函数:
def f(a:Int = 0, b:String = "", c:Float=0.0, foos: Foo*) { ... }
请注意一些参数的默认参数的使用。通常,要使用默认值,您可以通过以下方式使用命名参数调用函数:
val foo = Foo("Foo!")
f(foos = foo)
这个语法是有效的,因为我只用一个
foo
调用了这个方法。然而,如果我有两个或更多的foo
,那么这个语法就不再适用了。val foo1 = Foo("Foo!")
val foo2 = Foo("Bar!")
f(foos = ...)
这里需要输入什么并不是很明显。 Seq(foo1,foo2)
和 Seq(foo1,foo2):_*
都无法通过类型检查。
此外,如果我没有任何 foo
,我该如何调用它?
// All out of foos!
f(foos = ...)
对于这种情况,使用空括号(
f()
)调用函数是无效的。谢谢!