Scala:将Seq传递给var-args函数

Dav*_*haw 62 scala

给定一个带有可变数量参数的函数,例如

def foo(os: String*) =
  println(os.toList)
Run Code Online (Sandbox Code Playgroud)

如何将一系列参数传递给函数?我想写:

val args = Seq("hi", "there")
foo(args)
Run Code Online (Sandbox Code Playgroud)

显然,这不起作用.

Joa*_*ert 116

foo(args:_*)诀窍.不是将序列应用为单个参数,而是将序列中的每个元素用作参数.

  • 上面的函数```args:_*```是否有一个代码审查友好,不那么头痛的名字 (7认同)
  • 随着一点点微妙的风格变化,`foo(args:_*)`希望变得更加神秘(注意运营商之间增加的空间).`:`表示正在进行**类型归属**.`_*`是类型ascription的特殊实例:**vararg扩展**. (3认同)