为了账号安全,请及时绑定邮箱和手机立即绑定

“分配到零映射中的条目”,简单的界面分配不起作用

“分配到零映射中的条目”,简单的界面分配不起作用

Go
慕娘9325324 2022-07-25 10:39:18
我试图让自己熟悉interface{}Go。我试过了:         var  m  map[string]string          m["time"] = "asdf"并得到错误:分配给 nil 映射中的条目我不确定为什么会收到错误消息。
查看完整描述

3 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

当您声明这样的变量时:


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{}

这是一篇关于所有 Go 类型的默认值的文章。


查看完整回答
反对 回复 2022-07-25
?
慕神8447489

TA贡献1780条经验 获得超1个赞

您需要使用 make(built-in function) like make(map[string]string, 0) 来初始化地图

https://golang.org/doc/effective_go.html#allocation_make

https://golang.org/doc/effective_go.html#maps


查看完整回答
反对 回复 2022-07-25
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

地图 m 的值为 nil。

make 函数分配并初始化一个哈希映射数据结构,并返回一个指向它的映射值。

m := make(map[string]string)m["time"] = "asdf"

使用规范的 make 部分读取分配。


查看完整回答
反对 回复 2022-07-25
  • 3 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信