198
社区成员
发帖
与我相关
我的任务
分享声明变量赋值,这个是平时常见的一个操作,如下:
var i int
i = 1
fmt.Println(i)//1
不过在map中这样做的话,如下:
var m map[string]int
m["a1"] = 1
m["a2"] = 2
fmt.Println(m)
会报错:panic: assignment to entry in nil map
其实只需要知道map是属于引用类型,也可以知道没有分配内存,所以给nil map赋值就出错了
可以如下操作:
m := make(map[string]int)
m["a1"] = 1
m["a2"] = 2
fmt.Println(m)//map[a1:1 a2:2]
make来分配内存,或者另一种初始化的方法:
m := map[string]int{}