登录
首页 >  Golang >  Go问答

在迭代字典时删除字典键是否安全?

来源:stackoverflow

时间:2024-04-27 15:03:40 134浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《在迭代字典时删除字典键是否安全?》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我编写了一些执行此操作的代码,并且工作正常,但是在查看代码时,我意识到我所做的可能不适用于其他语言。

举一个人为的例子:

dict := map[string]string{ "a": "1", "b": "2" }

for key, val := range dict {
  fmt.Println(val)
   delete(dict, "b")
}

这会打印“1”和“2”,当我随后检查 dict 时,它只是 { "a": "1" }

所以,我的印象是这样做是安全的,但我想知道为什么?

range dict 是否在内部创建副本?


解决方案


一如既往,the spec 是最终答案。在 "For statements with range clause", item 3 下(强调我的):

好了,本文到此结束,带大家了解了《在迭代字典时删除字典键是否安全?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>