Как получить индекс в каждом цикле? Я хочу печатать числа для каждой второй итерации
Например
for (value in collection) {
if (iteration_no % 2) {
//do something
}
}
В java у нас есть традиционный цикл for
for (int i = 0; i < collection.length; i++)
Как получить i
?
Ответы:
В дополнение к решениям, предоставляемым @Audi, есть также
forEachIndexed
:источник
break
внутрь?return@forEachIndexed
что по сути будет служитьcontinue
переходом к следующему элементу. Если вам нужно разорвать, вам нужно будет обернуть его функцией и использоватьreturn
в цикле для возврата из этой включающей функции.использование
indices
Если вам нужна ценность, а также индекс Используйте
withIndex()
Ссылка: Control-flow в котлине
источник
попробуй это; для цикла
источник
В качестве альтернативы вы можете использовать
withIndex
библиотечную функцию:источник
Кажется, что вы действительно ищете
filterIndexed
Например:
Результат:
источник
.forEach(::println)
Диапазоны также приводят к читаемому коду в таких ситуациях:
источник
(0..collection.lastIndex step 2)