问题
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,
forEachIndexedis a good way to iterate.Alternative 1: the extension
withIndex, defined forIterabletypes, 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
indicesis available forCollection,Arrayetc., which let's you iterate like in a commonforloop 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