代码:
type t_struct struct {
player string
id int
}
func main() {
dataA := make(map[string]t_struct)
dataB := make(map[string]*t_struct)
var playerA t_struct
playerA.player = "tom"
playerA.id = 1
dataA["classA"] = playerA
dataA["classA"].id = 2 // ERROR, why?
playerB := new(t_struct)
dataB["classB"] = playerB
dataB["classB"].player = "rick"
dataB["classB"].id = 3
}
并得到错误:
无法分配给 dataA["classA"].id
我想知道为什么dataA["classA"].id = 2不工作但dataB["classB"].id = 3做了?如果要修改结构指针的成员值,这是将结构指针保存到映射中的唯一方法吗?
相关分类