web-dev-qa-db-ja.com

Listの要素をパラメーターとして変数引数を使用して関数に渡す

たとえば、orという関数があり、次のように定義されています。

or(filters: FilterDefinition*)

そして、私はリストを持っています:

List(X, Y, Z)

今やらなければならないのは、orのような呼び出しです

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

予想どおり、リストの長さが変わる場合があります。

Scalaでこれを行う最良の方法は何ですか?

20
Ashesh

この例を見て、String型の変数を受け取る関数printmeを定義します

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
48