我正在寻找类似于 c++ 函数 .clear()
的原始类型 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()
函数不同,会清空对象中的内容。
原文由 lavin 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可能应该只创建一个新地图。没有真正的理由去尝试清除一个现有的映射,除非同一个映射被多段代码引用,并且其中一段明确需要清除值,以便其他代码段可以看到此更改。
所以是的,你可能应该说
如果出于某种原因确实需要清除现有地图,这很简单: