Comment puis-je obtenir l'index pour un pour chaque boucle ... Je veux imprimer des nombres pour chaque seconde itération
Par exemple
for(value in collection) {
if(iteration_no % 2) {
//do something
}
}
En Java nous avons la boucle traditionnelle
for(int i=0; i< collection.length; i++)
Comment obtenir le i?
Outre les solutions fournies par @Audi, il existe aussi forEachIndexed
:
collection.forEachIndexed { index, element ->
// ...
}
Utilisez indices
for (i in array.indices) {
print(array[i])
}
Si vous voulez une valeur et un index Utilisez withIndex()
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
Référence: flux de contrôle en kotlin
Il semble que ce que vous recherchez réellement est filterIndexed
Par exemple:
listOf("a", "b", "c", "d")
.filterIndexed { index, _ -> index % 2 != 0 }
.forEach { println(it) }
Résultat:
b
d
essaye ça; pour la boucle
for ((i, item) in arrayList.withIndex()) { }
Les plages conduisent également à un code lisible dans de telles situations:
(0 until collection.size step 2)
.map(collection::get)
.forEach(::println)
Vous pouvez également utiliser la fonction de bibliothèque withIndex
:
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}