[Scala]可変長引数と : _*
Scalaで可変長引数を受け取る関数を定義する時は
[scala]def func(args: String*) = args.foreach(println)[/scala]
と書く
で、この関数に対して
[scala]func( "test1", "test2", "test3")[/scala]
とすれば、
[text]test1
test2
test3[/text]
となる
で、本題で、「: _*」ですが
この可変長引数を取る関数にリストを渡す時に使用します。
[scala]val list = List("test1", "test2", "test3")
func(list)[/scala]
では、
[text]<console>:35: error: type mismatch;
found : List[/text]
[text]required: String func(list)[/text]
のようなエラーになりますが
[scala]func(list: _*)[/scala]
とすれば、正常に出力されます。