Groovy,如何使用索引迭代列表

raf*_*ian 38 arrays groovy loops list

使用Groovy中的所有简写方法,在访问迭代索引时,必须有一种更简单的方法来迭代列表.

for(i in 0 .. list.size()-1) {
   println list.get(i)
}
Run Code Online (Sandbox Code Playgroud)

基本for循环中没有隐式索引吗?

for( item in list){
    println item       
    println index
}
Run Code Online (Sandbox Code Playgroud)

ata*_*lor 97

你可以使用eachWithIndex:

list.eachWithIndex { item, index ->
    println item
    println index
}
Run Code Online (Sandbox Code Playgroud)

使用Groovy 2.4和更新版本,您也可以使用该indexed()方法.使用以下方法访问索引非常方便collect:

def result = list.indexed().collect { index, item ->
    "$index: $item"
}
println result
Run Code Online (Sandbox Code Playgroud)

  • 我会从这里开始:http://groovy.codehaus.org/GDK+Extensions+to+Object 和 http://groovy.codehaus.org/JN1015-Collections (2认同)

R T*_*ari 5

如果您想启动索引 1,请尝试此操作。

[ 'rohit', 'ravi', 'roshan' ].eachWithIndex { name, index, indexPlusOne = index + 1 ->
    println "Name $name has position $indexPlusOne"
}
Run Code Online (Sandbox Code Playgroud)