我在groovy中有一个map,其中每个项都有多个值,我需要在循环中使用这些值。值的数量是固定的,因此可以存储在列表/数组中,元组-无关紧要。
例如,我试过:
def routemap = [ One: ['Berlin','Hamburg'], Two: ['London','Paris'], Three: ['Rome','Barcelona']]
routemap.each { route, startend ->
println "Route: $route"
println "Start: $startend[0] End: $startend[1]"
}
这不会提供所需的结果,列表索引不起作用。
Route: One
Start: [Berlin, Hamburg][0] End: [Berlin, Hamburg][1]
Route: Two
Start: [London, Paris][0] End: [London, Paris][1]
Route: Three
Start: [Rome, Barcelona][0] End: [Rome, Barcelona][1]
我也想知道是否有一个更好的,更优雅的方式来做到这一点?有没有一种方法可以在循环中分配两个值(或者像Python中那样的一对或一个元组),而不是“startend”?
2条答案
按热度按时间gr8qqesn1#
您应该将
$startend[index]
放在花括号中,就像${startend[0]}
一样。所以你的代码看起来像这样:wlzqhblo2#
你可以直接对
startend
参数使用多重赋值:印刷品