可変長引数の定義
可変長引数にするには以下のように書けば
def output(strs: String*) { strs.foreach(print) } output("hge1 ", "hoge2 ", "hoge3 ")
以下の出力が得られます。
hge1 hoge2 hoge3
List[String]を渡す
可変長引数を取る関数にListを渡すと、
val hoges = "hge1 " :: "hoge2 " :: "hoge3 " :: Nil output2(hoges)
以下のようにエラーになります。
[error] found : List[java.lang.String] [error] required: String [error] output2(hoges) [error] ^ [error] one error found
_* シンボル
こんな場合は、_* シンボルを使うと可変長引数にListで渡せて、
val hoges = "hge1 " :: "hoge2 " :: "hoge3 " :: Nil output2(hoges: _*)
以下の出力が得られます。
hoge1 hoge2 hoge3