Подтвердить что ты не робот

Передача элементов списка как параметров функции с переменными аргументами

У меня есть функция, называемая or, например, которая определяется как:

or(filters: FilterDefinition*)

А потом у меня есть список:

List(X, Y, Z)

Теперь мне нужно сделать вызов or как

or(func(X), func(Y), func(Z))

И как ожидается, длина списка может измениться.

Какой лучший способ сделать это в Scala?

4b9b3361

Ответ 1

Взгляните на этот пример, я определю функцию printme, которая принимает vargs типа String

def printme(s: String*) = s.foreach(println)


scala> printme(List("a","b","c"))

<console>:9: error: type mismatch;
 found   : List[String]
 required: String
              printme(List(a,b,c))

Что вам действительно нужно, чтобы распаковать список в аргументы с помощью оператора :_*

scala> val mylist = List("1","2","3")
scala> printme(mylist:_*)
1
2
3