Groovy, как перебирать список с индексом
Со всеми сокращенными способами выполнения действий в Groovy должен быть более простой способ перебора списка при наличии доступа к индексу итерации.
for(i in 0 .. list.size()-1) {
println list.get(i)
}
Нет ли неявного индекса в базовом цикле for
?
for( item in list){
println item
println index
}
Ответы
Ответ 1
Вы можете использовать eachWithIndex
:
list.eachWithIndex { item, index ->
println item
println index
}
С Groovy 2.4 и новее вы также можете использовать метод indexed()
. Это может быть полезно для доступа к индексу с помощью методов типа collect
:
def result = list.indexed().collect { index, item ->
"$index: $item"
}
println result
Ответ 2
Попробуйте это, если вы хотите запустить индекс 1.
[ 'rohit', 'ravi', 'roshan' ].eachWithIndex { name, index, indexPlusOne = index + 1 ->
println "Name $name has position $indexPlusOne"
}