声明之后再初始化

1
2
var m map[string]int
m = make(map[string]int)

只声明的Map只声明了类型,默认值是nil,取值返回对应类型的零值

1
2
3
4
var m map[string]int
fmt.Printf("%T",m)      // 类型为 map[string]int
fmt.Println(m == nil)   // 打印为 true
fmt.Println(m["henry"]) // 值为 0

如果声明后未被初始化,直接赋值回直接pannic

1
panic: assignment to entry in nil map