求大神指教
package main
import (
"fmt"
)
type User struct {
name string
age int
}
func main() {
test := map[int]User{1: User{"zhang", 10}, 2: User{"li", 9}}
test[1].name = "zhao"
fmt.Println(test)
/*
这种方式也行,但是我要用协程,数据要共享,so,不能用以下方式
tmp := test[1]
tmp.name = "zhao"
test[1] = tmp
fmt.Println(test)
*/
}
会报错
./test3.go:16: cannot assign to test[1].name
这种用法在goroutine 中使用时在map 上加上锁也没有问题吧
用指针的话应该更好一点吧,不过也存在data race,需要加锁