Go &引用;分配到“无地图”中的条目;简单的接口分配不起作用
我试图让自己熟悉围棋中的Go &引用;分配到“无地图”中的条目;简单的接口分配不起作用,go,interface,Go,Interface,我试图让自己熟悉围棋中的接口{}。我试过: var m map[string]string m["time"] = "asdf" 和获取错误: 分配到nil映射中的条目 我不确定为什么会出现错误。map m的值为零 make函数分配并初始化哈希映射数据结构,并返回指向该结构的映射值 m := make(map[string]string) m["time"] = "asdf"
接口{}
。我试过:
var m map[string]string
m["time"] = "asdf"
和获取错误:
分配到nil映射中的条目
我不确定为什么会出现错误。map m的值为零 make函数分配并初始化哈希映射数据结构,并返回指向该结构的映射值
m := make(map[string]string)
m["time"] = "asdf"
请阅读规格部分。您需要使用make(内置功能),如
make(映射[string]string,0)
初始化映射
当您声明这样的变量时:
var m map[string]string
您的m
变量被分配了一个默认值map
,它是nil
,而不是一个空映射。这就是为什么会出现这个错误,因为您试图向nil映射添加一个值
要初始化空映射,可以尝试以下任一操作:
var m map[string]string = map[string]string{}
m := make(map[string]string)
m := map[string]string{}
是一篇关于所有围棋类型的默认值的文章。1。您的错误意味着您正试图分配给nil映射
m
是一个零映射,因为您尚未为其指定任何值。谷歌搜索这个错误,你会发现无数关于修复的解释。2.您的代码或问题中没有接口,因此标题没有意义。如果声明变量时未向其添加值,则该变量具有默认值。在您的情况下,map的默认值是nil。在所有Go类型的默认值上查看此链接。m:=map[string]string{}