【踩坑】Go语言为Map的Value的属性赋值时报错

前言

Go语言为Map的Value的属性赋值时报错:Cannot assign to <map_name>[<key>].<field>

原因

  • 因为这个Map的Value是一个对象值而不是对象引用(指针),不能对对象进行赋值

解决问题

  • 修改Map的定义,将Value类型改为对象引用
1
2
3
4
5
6
7
8
9
10
type User struct {
Username string
}

func main() {
var user User
var m map[string]*User
m["key"] = &User{Username: "username"}
m["key"].username = "username"
}

完成

参考文献

CSDN——CAPTIAN船长