删除映射中的元素

Golang 提供了一个内置的函数 delete()用于删除集合中的元素,下面是一个简单的例子:

  1. delete(myMap, "hello")

上面的代码将从 myMap 中删除键为 hello 的键值对。如果 hello 这个键不存在,那么这个调用将什么都不会发生,也不会有什么副作用。但是如果传入的映射的变量的值为 nil,该调用将导致程序抛出异常(panic)。

还以前面定义的 myColors 映射为例,我们用 delete() 函数删除其中的 Coral

  1. // 创建一个映射,存储颜色以及颜色对应的十六进制代码
  2. myColors := map[string]string{
  3. "AliceBlue":"#f0f8ff",
  4. "Coral":"#ff7F50",
  5. "DarkGray":"#a9a9a9",
  6. "ForestGreen": "#228b22",
  7. }
  8. // 删除键为Coral的键值对
  9. delete(myColors, "Coral")
  10. // 显示映射里的所有颜色
  11. for key, value := range myColors {
  12. fmt.Printf("Key: %s Value: %s\n", key, value)
  13. }

执行上面的代码,发现输出的结果中已经没有 Coral 了:

  1. Key: DarkGray Value: #a9a9a9
  2. Key: ForestGreen Value: #228b22
  3. Key: AliceBlue Value: #f0f8ff