如何将Scala数组传递给Scala vararg方法?

Che*_*rry 62 arrays scala variadic-functions

请考虑以下代码:

private def test(some:String*){

}

private def call () {
  val some = Array("asd", "zxc")
  test(some)
}
Run Code Online (Sandbox Code Playgroud)

它打印expect String, found Array[String]为什么?Scala varargs不是数组吗?

注意

我在Stack Overflow上发现了几个关于Scala varargs的问题,但所有这些问题都是关于调用Java varargs方法或将Scala列表转换为数组.

Yuh*_*ang 103

像这样附加:_*到参数test

test(some:_*)
Run Code Online (Sandbox Code Playgroud)

它应该像你期望的那样工作.

如果你想知道那个神奇的东西:_*,请参考这个问题.


Her*_*lme 37

很简单:

def test(some:String*){}

def call () {
  val some = Array("asd", "zxc")
  test(some: _*)
}
Run Code Online (Sandbox Code Playgroud)