0

Groovy バージョン 2.1.0 を使用しています。マップから値を読み取り、別のマップを更新しようとしています。

a = ["key1":"" ,"key2":""]
b = ["key1": "10", "key3":"99" ]
for (i in b){
 if( i.key in a)
   a.(i.key) = i.value
}
def key2 = "key2"
a.key2 = "value2"
println a.get("key2")
println "value returned is :" + a.get("key1") + ":"

これにより、o/p

value2 value returned is ::

ただし、マップ 'a' に値として空の文字列が含まれていない場合、期待どおりに正常に動作します。

a = ["key1":"7" ,"key2":""]
b = ["key1": "10", "key3":"99" ]
for (i in b){
 if( i.key in a)
   a.(i.key) = i.value
}
a."key2" = "value2"
println a.get("key2")
println "value returned is :" + a.get("key1") + ":"

これにより、o/p

value2 value returned is :10:

最初のシナリオのように、空のマップを値で更新したいと考えています。どこが間違っているのでしょうか。

前もって感謝します。

4

2 に答える 2