用另一张地图更新地图

时间:2018-06-20 12:18:11

标签: dictionary groovy

在常规情况下,我想与另一个地图进行更新(左合并)。

def item = [attributes:[color:'Blue', weight:500], name:'hat', price:150]
def itemUpdate = [attributes:[size: 10]]
item << itemUpdate
println item

礼物:

  

[属性:[大小:10],名称:帽子,价格:150]

但是我想要的是:

  

[属性:[颜色:“蓝色”,重量:500,尺寸:10],名称:“帽子”,   价格:150]

我也尝试过:

item += itemUpdate

或使用Updating groovy object fields from a map。 没有人能满足我的要求;在 python 中,该方法将是update()方法。

编辑:实际上我对python是错误的。

1 个答案:

答案 0 :(得分:1)

您正在执行的操作实际上是覆盖attributes条目。

您要执行的操作是:

item.attributes = item.attributes + itemUpdate

您甚至可以:

item.attributes += itemUpdate

两者都能产生预期的效果

[attributes:[color:Blue, weight:500, size:10], name:hat, price:150]