可変長引数とは
関数に渡す引数の要素数が決まっておらず複数になり得る引数のこと
つまり可変長、1つかもしれないし、2つかもしれないし、3つかもしれない。
定義してみる
def variableLength(strings: String*): Unit = {
strings.foreach(println)
}
引数の最後に*
をつけることによって可変長引数を受け取れることができる。
実行してみる
variableLength("aaa") // "aaa"
variableLength("aaa", "bbb") // "aaa" "bbb"
このように要素数の異なる引数を受け付けて実行することができる。
Seqはどうなるの
Seqは受け付けることができるのかということになるのだが、以下のようにすることによって可能になる。
val seq = Seq("aaa", "bbb")
variableLength(seq: _*) // "aaa" "bbb"
まとめ
可変長引数について知見を得たので書いてみました。
未だ使用する場面に遭遇していませんが、どこかしらで使う場面が出た時が楽しみです。