请说出下面代码,执⾏时为什么会报错
package main
import "fmt"
type Student struct {
name string
}
func main() {
m := map[string]Student{"people": {"sunyanzi"}}
m["people"].name = "wuyanzu"
fmt.Println(m)
}
解析
map的value本身是不可寻址的,因为map中的值会在内存中移动,并且旧的指针地址在map改变时会变得⽆效。
故如果需要修改map值,可以将map中的⾮指针类型value,修改为指针类型,⽐如使⽤map[string]*Student