如何在Golang中从map中删除一个键?

如何在Golang中从map中删除一个键?

要从map中删除一个键,我们可以使用Go内置的delete()函数。需要注意的是,当我们从map中删除一个键时,其对应的值也会被删除,因为键值对在Go中被视为一个单独的实体, Go中的map 。

语法

delete函数的语法如下所示。

delete(map,key)

一旦我们以上述格式调用函数,那么地图中的键将被删除。

现在,让我们在Go代码中使用上述函数并理解其工作原理。

示例1

考虑下面显示的代码

package main

import (
   "fmt"
)

func main() {
   m := make(map[string]int)
   m["mukul"] = 10
   m["mayank"] = 9
   m["deepak"] = 8

   fmt.Println(m)

   fmt.Println("Deleting the key named deepak from the map")

   delete(m, "deepak")

   fmt.Println(m)
}

在上面的代码中,我们有一个名为m的映射,其中包含一些字符串作为键,一些整数值作为这些键的值。稍后,我们使用delete()函数从映射中删除名为”deepak”的键,然后再次打印映射的内容。

如果我们使用go run main.go命令运行上面的代码,那么我们将在终端中获得以下输出。

输出

map[mukul:10 mayank:9 deepak:8]
Deleting the key named deepak from the map
map[mukul:10 mayank:9]

上面的代码在大多数情况下都能正常工作,但在一种情况下会引发panic。会引发panic的情况是我们无法确定一个特定的键是否存在于映射中。

示例2

为了确保我们不编写会导致panic的代码,我们可以使用下面展示的代码。

package main

import (
   "fmt"
)

func main() {
   m := make(map[string]int)
   m["mukul"] = 10
   m["mayank"] = 9
   m["deepak"] = 8

   fmt.Println(m)

   fmt.Println("Deleting the key named deepak from the map")

   if _, ok := m["deepak"]; ok {
      delete(m, "deepak")
   }

   fmt.Println(m)
}

以上方法更加安全可靠,推荐使用而非第一种方法。

输出

如果我们使用以下命令运行以上代码 go run main.go 然后我们会在终端中得到如下输出。

map[mukul:10 mayank:9 deepak:8]
Deleting the key named deepak from the map
map[mukul:10 mayank:9]

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程