Scalaの連続パラメータ

C#での可変長引数は

void Function(params string[] args) { // }

と書く。
対してScalaでは

def function(args: String*) = { // }

と記述する。

呼び出しかたは同じ。

function(“a”, “b”, “c”)

とする。
ただし、C#はの場合は以下のように配列を渡せる

Function(new string[] { “a”, “b” });

が、Scalaではそれはできない。型としてはString*はArray[String]となっているのだができない。

しかし、配列を直接渡す方法も提供している。

val arr = Array(“a”, “b”)
function(arr: _*)

これは配列を直接渡すのではなく、arrの個々の要素を引数として渡すように指示している。