回答:
@Audiが提供するソリューションに加えて、次のものもありforEachIndexed
ます。
collection.forEachIndexed { index, element ->
// ...
}
break
内部で使用する方法は ありますか?
return@forEachIndexed
は、基本的continue
に次の要素にスキップするとして機能することです。ブレークする必要がある場合は、それを関数でラップreturn
し、ループで使用して、その囲んでいる関数から戻る必要があります。
使用する indices
for (i in array.indices) {
print(array[i])
}
値とインデックスが必要な場合 withIndex()
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
リファレンス:kotlinの制御フロー
または、withIndex
ライブラリ関数を使用できます。
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
制御フロー:if、when、for、while:https : //kotlinlang.org/docs/reference/control-flow.html
あなたが本当に探しているのは filterIndexed
例えば:
listOf("a", "b", "c", "d")
.filterIndexed { index, _ -> index % 2 != 0 }
.forEach { println(it) }
結果:
b
d
.forEach(::println)
範囲はまた、そのような状況で読み取り可能なコードにつながります。
(0 until collection.size step 2)
.map(collection::get)
.forEach(::println)
(0..collection.lastIndex step 2)