删除映射中的元素
Golang
提供了一个内置的函数 delete()
用于删除集合中的元素,下面是一个简单的例子:
delete(myMap, "hello")
上面的代码将从 myMap
中删除键为 hello
的键值对。如果 hello
这个键不存在,那么这个调用将什么都不会发生,也不会有什么副作用。但是如果传入的映射的变量的值为 nil
,该调用将导致程序抛出异常(panic
)。
还以前面定义的 myColors
映射为例,我们用 delete()
函数删除其中的 Coral
:
// 创建一个映射,存储颜色以及颜色对应的十六进制代码
myColors := map[string]string{
"AliceBlue":"#f0f8ff",
"Coral":"#ff7F50",
"DarkGray":"#a9a9a9",
"ForestGreen": "#228b22",
}
// 删除键为Coral的键值对
delete(myColors, "Coral")
// 显示映射里的所有颜色
for key, value := range myColors {
fmt.Printf("Key: %s Value: %s\n", key, value)
}
执行上面的代码,发现输出的结果中已经没有 Coral 了:
Key: DarkGray Value: #a9a9a9
Key: ForestGreen Value: #228b22
Key: AliceBlue Value: #f0f8ff