package main
import "fmt"
func main() {
var users []map[string]interface{}
var user = make(map[string]interface{})
var names = []string{
`calvin`,
`jason`,
`bob`,
}
for _, name := range names {
user[`name`] = name
users = append(users, user)
}
fmt.Println(users)
}
结果:
[map[name:bob] map[name:bob] map[name:bob]]
我知道该怎样改,我也知道在 golang 中 map 是引用传递,只是不明白为什么会影响到 append 的结果。
因为你的
user[`name`] = name
这个语句把之前的值覆盖了