登录
首页 >  Golang >  Go问答

Go中迅猛清除map?

来源:Golang技术栈

时间:2023-03-23 10:48:53 461浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《Go中迅猛清除map?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我正在寻找.clear() 原始类型的 c++ 函数之类的东西map

还是我应该只创建一个新地图?

更新:感谢您的回答。通过查看答案,我刚刚意识到有时创建新地图可能会导致一些我们不想要的不一致。考虑以下示例:

var a map[string]string
var b map[string]string

func main() {
    a = make(map[string]string)
    b=a
    a["hello"]="world"
    a = nil
    fmt.Println(b["hello"])
}

我的意思是,这和c++中的函数还是有区别的.clear(),它会清除对象中的内容。

正确答案

您可能应该只创建一个新地图。没有真正的理由费心尝试清除现有的地图,除非多段代码引用同一个地图,并且其中一段明确需要清除这些值,以便其他代码段可以看到此更改。

所以,是的,你可能应该说

mymap = make(map[keytype]valtype)

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

for k := range m {
    delete(m, k)
}

好了,本文到此结束,带大家了解了《Go中迅猛清除map?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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