golang中map未初始化默认的是nil。如果向nil map写入键值数据会导致
panic: assignment to entry in nil map
例子
var numbers map[string]int
numbers = make(map[string]int)
numbers["one"] = 1 //赋值
numbers["ten"] = 10 //赋值
numbers["three"] = 3fmt.Println("第三个数字是: ", numbers["three"]) // 读取数据
如果没有第二行的分配内存,那么就会报如下错误:
但是slice在使用append像nil slice后追加元素就可以了,因为append方法在底层为slice重新分配了相关内存