golang 中對 map 類型中的 struct 賦值報錯golang
type s struct{
name string
age int
}
func main(){
a := map[string]s{
"tao":{
"li",
18,},
}
fmt.Println(a["tao"].age)
a["tao"].age += 1 //註釋後能夠執行
fmt.Println(a["tao"].age)
}
./test.go:16:15: cannot assign to struct field a["tao"].age in mapspa
緣由是 map 元素是沒法取址的,也就說能夠獲得 a["tao"], 可是沒法對其進行修改。指針
解決辦法:使用指針的mapcode
type s struct{ name string age int } func main(){ a := map[string]*s{ "tao":{ "li", 18,}, } fmt.Println(a["tao"].age) a["tao"].age += 1 fmt.Println(a["tao"].age) }