问题
In Python I can write:
for i, element in enumerate(my_list):
print i # the index, starting from 0
print element # the list-element
How can I write this in Kotlin?
回答1:
There is a forEachIndexed function in the standard library:
myList.forEachIndexed { i, element ->
println(i)
println(element)
}
See @s1m0nw1's answer as well, withIndex
is also a really nice way to iterate through an Iterable
.
回答2:
Iterations in Kotlin: Some Alternatives
Like already said,
forEachIndexed
is a good way to iterate.Alternative 1: the extension
withIndex
, defined forIterable
types, can be used infor
-each:val ints = arrayListOf(1, 2, 3, 4, 5) for ((i, e) in ints.withIndex()) { println("$i: $e") }
Alternative 2: extension property
indices
is available forCollection
,Array
etc., which let's you iterate like in a commonfor
loop as known from C, Java etc:for(i in ints.indices){ println("$i: ${ints[i]}") }
来源:https://stackoverflow.com/questions/46825787/does-kotlin-have-an-enumerate-function-like-python