如何在Groovy中迭代和访问部分映射

如何在Groovy中迭代和访问部分映射,groovy,map,for-loop,iterator,Groovy,Map,For Loop,Iterator,我做了一张地图: def topTen = (1..10).collect { [:].withDefault{[]} } for (i = 0; i<10; i++) { topTen[i].put("null", i+1) } def topTen=(1..10).收集{[:].withDefault{[]} 对于(i=0;idef topTen=(1..10)。收集{ [:].withDefault{[]} 对于(i=0;i作为Ray答案的替代方案,如果要比较第一个值和第四个值

我做了一张地图:

def topTen = (1..10).collect { [:].withDefault{[]} }
for (i = 0; i<10; i++) {

topTen[i].put("null", i+1)

}
def topTen=(1..10).收集{[:].withDefault{[]}
对于(i=0;i
def topTen=(1..10)。收集{
[:].withDefault{[]}

对于(i=0;i作为Ray答案的替代方案,如果要比较第一个值和第四个值,可以执行以下操作:

def (a, b) = topTen[ 0, 3 ].'null'
assert a == b
这(显然)是错误的,因此会抛出断言错误:

Dec 2, 2011 9:07:22 AM org.codehaus.groovy.runtime.StackTraceUtils sanitize
WARNING: Sanitizing stacktrace:
Assertion failed: 

assert a == b
       | |  |
       1 |  4
         false

顺便说一句,这与您的代码一样,只需要较少的键入;-)
def topTen=(1..10)。收集{['null':it]}
我明白了,谢谢。
topTen[0,3]中的
'null'
是什么.“null”
do?我差不多明白了,但我还是不太了解这个函数表示法,使用
.\uu
.@blaughli你已经添加了字符串“null”作为映射的键。所以它只在第一个和第四个条目中得到这个键的值。好吧,我想我已经得到了。至少我得到了:)谢谢你(一如既往)谢谢雷!我当然可以使用thissee编辑来获得其他一些语法示例
Dec 2, 2011 9:07:22 AM org.codehaus.groovy.runtime.StackTraceUtils sanitize
WARNING: Sanitizing stacktrace:
Assertion failed: 

assert a == b
       | |  |
       1 |  4
         false