Как передать переменные аргументы при добавлении еще одного в Scala? - PullRequest
5 голосов
/ 02 декабря 2011

Рассмотрим эти методы:

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

Компилятор говорит:

ошибка: здесь не допускается аннотация `: _ * (такие аннотации допускаются только в аргументах * -параметров)

Теперь я озадачен. Это очевидный случай использования переменных аргументов, так как правильно передать такую ​​расширенную «коллекцию»?

1 Ответ

6 голосов
/ 02 декабря 2011

Попробуйте это:

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

ОБНОВЛЕНИЕ: гораздо лучшая версия, предложенная @ Рекс Керр (см. Комментарий ниже):

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