scala - 将单个参数和 Seq 传递给 var-arg 函数

标签 scala variadic-functions

我知道可以将单个参数传递给 vararg 函数,并且可以使用 :_* 传递 seq但是有可能同时通过吗?

例如:

scala> object X { def y(s: String*) = println(s) }
defined module X

scala> X.y("a", "b", "c")
WrappedArray(a, b, c)

scala> X.y(Seq("a", "b", "c"):_*)
List(a, b, c)

scala> X.y("a", Seq("b", "c"):_*)
<console>:9: error: no `: _*' annotation allowed here
(such annotations are only allowed in arguments to *-parameters)
       X.y("a", Seq("b", "c"):_*)
                             ^

编辑:在 Scala 2.10 中(以防万一)

最佳答案

Hacky 但这应该很好用:

X.y(Seq("a") ++ Seq("b", "c"):_*)

关于scala - 将单个参数和 Seq 传递给 var-arg 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15502924/

相关文章:

c++ - 在参数 C++ 中传递多个参数而不使用 va_list

java - Scala - 链接两个隐式转换时如何进行模式匹配?

scala - 有条件合并列表元素

scala - 在 scala 的函数参数中提取元组的快捷方式

java - 我们可以在 Java 中使用 varargs 进行 null 验证吗?

java - 如何使用来自可变参数方法的附加参数调用可变参数方法

json - akka-http + Spray-json 客户端 json 编码

Scala 案例类和构造函数

C++ 变量参数错误

c++ - 如何将可变成员函数绑定(bind)到仿函数?