サーチ…


構文

  • Varargキーワードvarargはメソッド宣言で使用され、可変数のパラメータが受け入れられることを示します。
  • スプレッド演算子 :個々のパラメータに内容を展開する関数呼び出しで使用される配列の前のアスタリスク( * )。

基本:varargキーワードの使用

varargキーワードを使用して関数を定義します。

fun printNumbers(vararg numbers: Int) {
    for (number in numbers) {
        println(number)
    }
}

これで、(適切な型の)多くのパラメータを関数に渡すことができます。

printNumbers(0, 1)                // Prints "0" "1"
printNumbers(10, 20, 30, 500)     // Prints "10" "20" "30" "500"

注意: Varargパラメータは、パラメータリストの最後のパラメータでなければなりません

スプレッド演算子:配列をvararg関数に渡す

配列は、 スプレッド演算子 *を使用してvararg関数に渡すことができます。

次の関数が存在すると仮定します...

fun printNumbers(vararg numbers: Int) {
    for (number in numbers) {
        println(number)
    }
}

あなたは関数のように配列渡すことができます...

val numbers = intArrayOf(1, 2, 3)
printNumbers(*numbers)

// This is the same as passing in (1, 2, 3)

スプレッド演算子は、パラメータの途中で使用することもできます...

val numbers = intArrayOf(1, 2, 3)
printNumbers(10, 20, *numbers, 30, 40)

// This is the same as passing in (10, 20, 1, 2, 3, 30, 40)


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow