¿Cómo obtener el índice en un para cada ciclo? Quiero imprimir números para cada segunda iteración
Por ejemplo
for (value in collection) {
if (iteration_no % 2) {
//do something
}
}
En Java, tenemos el tradicional bucle for
for (int i = 0; i < collection.length; i++)
¿Cómo conseguir el i
?
Respuestas:
Además de las soluciones proporcionadas por @Audi, también hay
forEachIndexed
:fuente
break
dentro?return@forEachIndexed
lo que esencialmente servirá comocontinue
saltar al siguiente elemento. Si necesita romper, tendría que envolverlo en una función y usarloreturn
en el bucle para regresar de esa función de cierre.Utilizar
indices
Si desea valor e índice Use
withIndex()
Referencia: Control de flujo en kotlin
fuente
prueba esto; en bucle
fuente
Alternativamente, puede usar la
withIndex
función de biblioteca:fuente
Parece que lo que realmente estás buscando es
filterIndexed
Por ejemplo:
Resultado:
fuente
.forEach(::println)
Los rangos también conducen a un código legible en tales situaciones:
fuente
(0..collection.lastIndex step 2)