Comment obtenir l'index dans un pour chaque boucle? Je veux imprimer des nombres pour chaque deuxième itération
Par exemple
for (value in collection) {
if (iteration_no % 2) {
//do something
}
}
En java, nous avons la traditionnelle boucle for
for (int i = 0; i < collection.length; i++)
Comment obtenir le i
?
Réponses:
En plus des solutions proposées par @Audi, il y a aussi
forEachIndexed
:la source
break
intérieur?return@forEachIndexed
qui servira essentiellementcontinue
à passer à l'élément suivant. Si vous avez besoin de casser, vous devez l'envelopper dans une fonction et l'utiliserreturn
dans la boucle pour revenir à partir de cette fonction englobante.Utilisation
indices
Si vous voulez la valeur ainsi que l'index Utilisez
withIndex()
Référence: Control-flow dans kotlin
la source
essaye ça; pour boucle
la source
Vous pouvez également utiliser la
withIndex
fonction de bibliothèque:la source
Il semble que ce que vous recherchez vraiment
filterIndexed
Par exemple:
Résultat:
la source
.forEach(::println)
Les plages conduisent également à un code lisible dans de telles situations:
la source
(0..collection.lastIndex step 2)