web-dev-qa-db-ja.com

KotlinにはPythonのような「列挙」機能がありますか?

Python私は書くことができます:

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

これをKotlinでどのように書くことができますか?

18
fafl

標準ライブラリには forEachIndexed 関数があります:

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

@ s1m0nw1の回答 も参照してください。withIndexは、Iterableを反復するための非常に優れた方法でもあります。

24
zsmb13

Kotlinの反復:いくつかの選択肢

すでに で述べたように、forEachIndexedは反復処理に適した方法です。

代替1

withIndex型に対して定義された拡張関数Iterableは、for- eachで使用できます。

val ints = arrayListOf(1, 2, 3, 4, 5)

for ((i, e) in ints.withIndex()) {
    println("$i: $e")
}

代替2

拡張プロパティindicesは、CollectionArrayなどで使用できます。C、Javaなどから知られている一般的なforループのように反復できます。

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