각 루프마다 인덱스를 얻는 방법은 무엇입니까? 매초마다 숫자를 인쇄하고 싶습니다.
예를 들어
for (value in collection) {
if (iteration_no % 2) {
//do something
}
}
자바에서는 전통적인 for 루프가 있습니다.
for (int i = 0; i < collection.length; i++)
얻는 방법 i
?
답변
@Audi에서 제공하는 솔루션 외에도 다음이 있습니다 forEachIndexed
.
collection.forEachIndexed { index, element ->
// ...
}
답변
사용하다 indices
for (i in array.indices) {
print(array[i])
}
인덱스뿐만 아니라 가치를 원한다면 withIndex()
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
참조 : kotlin의 제어 흐름
답변
이 시도; for 루프
for ((i, item) in arrayList.withIndex()) { }
답변
또는 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
답변
범위 는 다음과 같은 상황에서 읽을 수있는 코드로 이어집니다.
(0 until collection.size step 2)
.map(collection::get)
.forEach(::println)