go - 无法通过将一个变量分配给另一个变量

时间:2016-11-10 11:09:06

标签: go

我有一张地图:

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也会被修改,并变为equaltempCart

稍后当我打印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重复但我知道如何将一张地图复制到另一个地图,我的主要问题是为什么我不能只将一个地图分配给另一个变量。为什么我必须在循环中复制它。

1 个答案:

答案 0 :(得分:5)

复制地图使用

for k,v := range originalMap {
  newMap[k] = v
}