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:
最初のシナリオのように、空のマップを値で更新したいと考えています。どこが間違っているのでしょうか。
前もって感謝します。