サーチ…


前書き

範囲式は、inと!inで補完される演算子の..を持つrangeTo関数で形成されます。範囲はすべての比較可能な型に対して定義されますが、整数型のプリミティブ型では最適化された実装があります

積分型の範囲

インテグラル型の範囲(IntRange、LongRange、CharRange)には特別な機能があります。それらは反復処理が可能です。コンパイラはこれを、Javaのインデックス付きfor-loopと同様に、余分なオーバーヘッドなしに変換します

for (i in 1..4) print(i) // prints "1234"
for (i in 4..1) print(i) // prints nothing

downTo()関数

数字を逆順に繰り返したい場合は?それは簡単です。標準ライブラリで定義されたdownTo()関数を使用することができます

for (i in 4 downTo 1) print(i) // prints "4321"

step()関数

任意のステップで数値を反復することは可能ですか?1に等しくはありませんか?もちろん、step()関数はあなたに役立ちます

for (i in 1..4 step 2) print(i) // prints "13"
for (i in 4 downTo 1 step 2) print(i) // prints "42"

機能まで

end要素を含まない範囲を作成するには、until関数を使用します。

for (i in 1 until 10) { // i in [1, 10), 10 is excluded
println(i)
}


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