先要声明变量,因为 map 是引用类型,所以 m 的值是nil,这时可以读,但是如果写入会 panic var m map[string]string 使用内置的make函数创建一个非nil的map, m = make(map[string]string)
// 直接创建 m2 := make(map[string]string)
然后就可以操作了
// 赋值 m["a"] = "aa" m["b"] = "bb"
// 取值,如果取的值不存在,那么返回类型的空值 str := m["a"]
在map中访问结构体struct成员变量
map里面的数据是动态变化的所以不能直接引用。
func main() { p := make(People) p["HM"] = Person{"Hank McNamara", 39} //这里会出错,Reports assignments directly to a struct field of a map. p["HM"].age += 1 }