ScalaのRepeated Parameters
819 ワード
Scalaは関数の最後のパラメータが反復可能であることを可能にする.これにより、ユーザは、関数に変長パラメータのリストを渡すことができる.繰り返し可能なパラメータを示すには、そのパラメータのタイプにアスタリスクを付ける必要があります.例:
上記の定義に従って、echo関数を呼び出すには、0または複数のStringパラメータを使用します.
関数内部では、繰り返し可能なパラメータのタイプは、このパラメータが示すタイプの配列形式です.したがって,argsというString型として宣言された繰返し可能なパラメータは,echo関数内部では実はArray[String]型である.ただし、対応するタイプの配列パラメータを重複可能なタイプのパラメータに直接渡すと、コンパイルエラーが表示されます.
パラメータ伝達を完了するには、配列パラメータの後に
このシンボル(
def echo(args: String*) = for (arg
上記の定義に従って、echo関数を呼び出すには、0または複数のStringパラメータを使用します.
echo()
echo("one")
echo(“hello”,“world!”)
関数内部では、繰り返し可能なパラメータのタイプは、このパラメータが示すタイプの配列形式です.したがって,argsというString型として宣言された繰返し可能なパラメータは,echo関数内部では実はArray[String]型である.ただし、対応するタイプの配列パラメータを重複可能なタイプのパラメータに直接渡すと、コンパイルエラーが表示されます.
val arr = Array("what's", "up", "doc?")
echo(arr) // :type mismatch
パラメータ伝達を完了するには、配列パラメータの後に
:
と_*
を追加する必要があります.echo(arr: _*)
このシンボル(
_*
)は、配列を単一のパラメータとして渡すのではなく、配列内の各要素をパラメータとしてecho関数に渡すことをコンパイラに伝える.