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

问题描述 投票:5回答:1

考虑以下方法:

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

编译器说:

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

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

scala arguments parameter-passing
1个回答
6
投票

试试这个:

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

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

def clearlnOut(coll : Any*) {
  clearOut((coll :+ "\n"): _*)
}
© www.soinside.com 2019 - 2024. All rights reserved.