所以我有这个通过调用方法来初始化的varresolve
类型。map[string][]byte
如果我只是迭代resolve
该值正在正确打印。
for k, v := range resolve {
fmt.Printf("%s\t%s\n", k, v)
}
但是在下一行中,我试图迭代地图以将值存储在 db ( bolt
) 中,因为地图中键 ( key1
) 的值正在自动更改,我无法弄清楚原因。为了进一步简化我所做的是将该键的值存储在一个新的变量中
a:= resolve["key1"]
然后在将值存储在数据库中时,我检查了密钥是否为key1
store a
。在这种情况下a
,不应该更改的值也正在更改。
这个要点有代码,我们可以看到resolve
第 30 行的代码在第 34 行发生了变化。
我在 go playground 中添加了代码,这里是链接 https://play.golang.org/p/2WacK-xxRp_m