Como obter o índice em um para cada loop? Quero imprimir números para cada segunda iteração
Por exemplo
for (value in collection) {
if (iteration_no % 2) {
//do something
}
}
Em java, temos o loop for tradicional
for (int i = 0; i < collection.length; i++)
Como obter o i
?
Respostas:
Além das soluções fornecidas pela @Audi, há também
forEachIndexed
:fonte
break
dentro?return@forEachIndexed
que essencialmente servirá comocontinue
para pular para o próximo elemento. Se você precisar interromper, precisará envolvê-lo em uma função e usá-loreturn
no loop para retornar dessa função anexa.Usar
indices
Se você deseja valor e índice, use
withIndex()
Referência: fluxo de controle no kotlin
fonte
tente isso; para laço
fonte
Como alternativa, você pode usar a
withIndex
função de biblioteca:fonte
Parece que o que você está realmente procurando é
filterIndexed
Por exemplo:
Resultado:
fonte
.forEach(::println)
As faixas também levam ao código legível nessas situações:
fonte
(0..collection.lastIndex step 2)