我有一张地图:
cart := map[10033207:{10033207 3 425 126} 10012761:{10012761 4 40 0}]
我想在另一个变量cart
中创建tempCart
的副本,以便我可以修改tempCart以便在我的函数中临时使用。我希望购物车价值保持不变。
tempCart := cart
//some operation which modifies temp cart and make it
//map[10033207:{10033207 2 425 126} 10012761:{10012761 1 40 0}]
问题在于,当我修改tempCart
时,某种方式cart
也会被修改,并变为equal
到tempCart
。
稍后当我打印cart
的值时,我得到:
map[10033207:{10033207 2 425 126} 10012761:{10012761 1 40 0}]
而不是原始值map[10033207:{10033207 3 425 126} 10012761:{10012761 4 40 0}]
。
我无法理解其背后的原因,并希望了解如何创建cart
副本的解决方案。
编辑:这个问题已被标记为copy one map to another
重复但我知道如何将一张地图复制到另一个地图,我的主要问题是为什么我不能只将一个地图分配给另一个变量。为什么我必须在循环中复制它。
答案 0 :(得分:5)
复制地图使用
for k,v := range originalMap {
newMap[k] = v
}