如何使用Array [String]元素调用String*的方法

Jus*_*s12 4 scala

假设我有一个方法

def f(s:String *) = s.foreach( x => println(x) )
Run Code Online (Sandbox Code Playgroud)

现在我有一个数组:

val a = Array("1", "2", "3")
Run Code Online (Sandbox Code Playgroud)

如何f使用aas参数的元素调用?

编辑:

所以a,我想做以下事情:

f(a(0), a(1), a(2))  // f("1", "2", "3")
Run Code Online (Sandbox Code Playgroud)

Tom*_*icz 15

有一个运营商:

f(a: _*)
Run Code Online (Sandbox Code Playgroud)

此操作在章节4.6.2 Scala语言规范版本2.9的重复参数中定义,并在6.6函数应用程序中进一步说明:

应用程序中的最后一个参数可以标记为序列参数,例如 e : _*.这样的论证必须对应于S *[...] 类型的重复参数(第4.6.2节) .此外,电子商务类型必须符合scala.Seq[T],对于某些类型T的符合S.在这种情况下,通过将序列e替换为其元素来转换参数列表.


BTW你的f功能可以简化:

def f(s:String *) = s foreach println
Run Code Online (Sandbox Code Playgroud)

或者更好(不鼓励等号,因为它表明该方法实际上返回了一些东西,但它"只"返回Unit):

def f(s:String *) {s foreach println}
Run Code Online (Sandbox Code Playgroud)