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

如何在Go中清除地图?

如何在Go中清除地图?

Go
米琪卡哇伊 2021-05-20 16:22:47
我正在寻找类似c ++函数.clear() 的原始类型的东西map。还是应该只创建一个新地图?更新:谢谢您的回答。通过查看答案,我刚刚意识到有时创建新地图可能会导致我们不想要的某些不一致之处。考虑以下示例:var a map[string]stringvar b map[string]stringfunc main() {    a = make(map[string]string)    b=a    a["hello"]="world"    a = nil    fmt.Println(b["hello"])}我的意思是,这仍然与.clear()c ++中的功能不同,后者将清除对象中的内容。
查看完整描述

3 回答

?
温温酱

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

您可能应该只创建一个新地图。没有真正的理由去尝试清除现有的代码,除非同一段映射被多个代码引用,并且一个代码段明确需要清除值,以便此更改对其他代码可见。


是的,你可能应该说


mymap = make(map[keytype]valtype)

如果确实出于任何原因需要清除现有地图,这很简单:


for k := range m {

    delete(m, k)

}


查看完整回答
反对 回复 2021-05-24
  • 3 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

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