使用append往slice中添加一个值的时候,slice中的所有值均被修改

jason_dong · · 1501 次点击
如果一定要按照楼主的思路写的话,可以这么修改: ``` for _, value := range maps_temp { area["id"] = value["id"] area["value"] = value["value"] data = append(data, area) area = make(map[string]interface{}) } fmt.Println("data:", data) ```
#4
更多评论
map 是指针 你的area
#1
for loop 中,value 的变量被重复使用了,就是说,你三次 ``` area["id"] area["value"] ``` 指向的都是同一片地址。 你在这里,可以这么修改: ``` for i, _ := range maps_temp { value := maps_temp[i] area["id"] = value["id"] area["value"] = value["value"] data = append(data, area) } ```
#2