Имеет ли Kotlin функцию «перечисления», такую ​​как Python?

В Python я могу написать:

for i, element in enumerate(my_list): print i # the index, starting from 0 print element # the list-element 

Как я могу написать это в Котлине?

В стандартной библиотеке forEachIndexed функция forEachIndexed :

 myList.forEachIndexed { i, element -> println(i) println(element) } 

См. Также ответ @ s1m0nw1 , withIndex также очень хороший способ итерации через Iterable .

Итерации в Котлине: некоторые альтернативы

  1. Как уже говорилось, forEachIndexed – это один из способов сделать.

  2. Я хочу указать альтернативу – расширение с помощью withIndex на типы Iterable которые можно использовать for -each:

     val ints = arrayListOf(1, 2, 3, 4, 5) for ((i, e) in ints.withIndex()) { println("$i: $e") } 
  3. И тогда есть indices свойств расширения в Collection , Array и т. Д., Которые приближаются к общему for C, Java и так далее:

     for(i in ints.indices){ println("$i: ${ints[i]}") }