我做了一個地圖:如何通過反覆測試,並在Groovy
def topTen = (1..10).collect { [:].withDefault{[]} }
for (i = 0; i<10; i++) {
topTen[i].put("null", i+1)
}
我怎樣才能抓住一個條目的第二部分(VALUE)在此地圖,並與其他的比較使用(價值)從另一個地圖的另一個條目?
我做了一個地圖:如何通過反覆測試,並在Groovy
def topTen = (1..10).collect { [:].withDefault{[]} }
for (i = 0; i<10; i++) {
topTen[i].put("null", i+1)
}
我怎樣才能抓住一個條目的第二部分(VALUE)在此地圖,並與其他的比較使用(價值)從另一個地圖的另一個條目?
作爲替代雷人的答案,如果你想比較第一和第四值,你可以這樣做:
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).collect {
[:].withDefault{[] } }
for (i = 0; i<10; i++) {
topTen[i].put("null", i+1)
}
def other=[[null:1],[null:2]]
if(topTen[0]['null']==other[0]['null'])
println 'equal'
if(topTen[0].get('null')==other[0]['null'])
println 'equal'
if(topTen[0].'null'==other[0]['null'])
println 'equal'
由於雷!我當然可以使用這個 – blaughli
查看編輯的一些其他例子的語法來獲取東西 –
順便說一句,這確實與您的代碼以較少的打字;-)'DEF TOPTEN =(1..10).collect {[ '空':它]}' –