假设我有一个如下所示的函数:
def foo(x: Int*)(y: Int*): Int = ???
Run Code Online (Sandbox Code Playgroud)
如何传递Array第x和y到foo?
val x = Array(4,6,3,7)
val y = Array(3,4,6,3)
foo(x, y) // Error:Type mismatch
Run Code Online (Sandbox Code Playgroud)
用:_*告诉编译器解压顺序符合预期的可变参数的输入.此外,由于foo使用两个参数列表声明,因此调用该函数必须匹配:
foo(x: _*)(y: _*)
Run Code Online (Sandbox Code Playgroud)