如何在Scala中添加另一个参数时传递可变参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Scala中添加另一个参数时传递可变参数?相关的知识,希望对你有一定的参考价值。

考虑以下方法:

def clearlnOut(coll : Any*)
{
  clearOut(coll:_*,"\n") // error
}
def clearOut(coll : Any*)
{
  ...

编译器说:

错误:此处不允许使用`:_ *'注释(此类注释仅允许在*参数的参数中使用)

现在我很困惑。很明显使用可变参数,如何正确传递这种增强的“集合”?

答案

试试这个:

def clearlnOut(coll : Any*) {
  clearOut(coll ++ "\n")
}

更新:@Rex Kerr建议的更好的版本(见下面的评论):

def clearlnOut(coll : Any*) {
  clearOut((coll :+ "\n"): _*)
}

以上是关于如何在Scala中添加另一个参数时传递可变参数?的主要内容,如果未能解决你的问题,请参考以下文章

怎么将可变参数的函数的参数传递给另一个可变参数的函数

Scala传递参数遇到的坑

Scala可变参数列表,命名参数和参数缺省

C:将可变数量的参数从一个函数传递到另一个函数

如何在 Angular Controller 中观察可变参数

如何将矢量(或类似)传递给可变参数模板