我在寻找类似c ++函数.clear() 的原始类型map。
.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"]) }
我的意思是,这仍然与.clear()c ++中的功能不同,后者将清除对象中的内容。
您可能应该只创建一个新地图。没有真正的理由去尝试清除现有的代码,除非同一段映射被多个代码引用,并且一个代码段明确需要清除值,以使此更改对其他代码可见。
是的,你可能应该说
mymap = make(map[keytype]valtype)
如果确实出于任何原因需要清除现有地图,这很简单:
for k := range m { delete(m, k) }