Home  >  Article  >  Backend Development  >  golang map delete element

golang map delete element

王林
王林Original
2023-05-10 12:21:061033browse

The map in golang is a very useful data structure that can map a key-value pair to another value, allowing fast search and storage. Normally, we add elements to a map, but sometimes we also need to delete elements from the map. This article will introduce how to delete elements in map in golang.

  1. Delete a single element

The method of deleting a single element is very simple, just use the delete() function. For example:

package main

import "fmt"

func main() {
    // 定义一个字符串到整数的map
    m := map[string]int{"a": 1, "b": 2, "c": 3}

    // 删除key为a的元素
    delete(m, "a")

    // 输出map中的元素
    fmt.Println(m) // 输出:map[b:2 c:3]
}

We first define a map from string to integer, and then use the delete() function to delete the element with key a. Finally, the elements in the map are output, and you can see that element a has been deleted.

  1. Delete non-existent elements

When we delete an element that does not exist in the map, the delete() function will not generate an error and will not do anything to the map. Any changes. For example:

package main

import "fmt"

func main() {
    // 定义一个字符串到整数的map
    m := map[string]int{"a": 1, "b": 2, "c": 3}

    // 删除key为d的元素
    delete(m, "d")

    // 输出map中的元素
    fmt.Println(m) // 输出:map[a:1 b:2 c:3]
}

In the above example, we deleted the element with key d that did not exist in the map, but the program did not report an error and did not make any changes to the map.

  1. Delete all elements

To delete all elements, we can use a for loop to traverse the map and then delete each element in turn. For example:

package main

import "fmt"

func main() {
    // 定义一个字符串到整数的map
    m := map[string]int{"a": 1, "b": 2, "c": 3}

    // 删除所有元素
    for k := range m {
        delete(m, k)
    }

    // 输出map中的元素
    fmt.Println(m) // 输出:map[]
}

In the above example, we first define a map from string to integer, and then use a for loop to traverse the map and delete each element in turn. Finally, the elements in the map are output, and you can see that the map is empty.

It should be noted that when deleting elements in the map, we cannot use a loop such as for i, val := range m, because this loop will traverse the elements of the map twice, and after deleting the element , the length of the map and the traversed counter i will change, which may cause the program to crash. Therefore, we can only use a loop like for k := range m to traverse the map.

Summary:

To delete elements in a map in golang, we can use the delete() function to delete a single element, or we can use a for loop to traverse the map, and then delete each element in turn. It should be noted that when deleting elements in a map, a loop such as for k := range m should be used to traverse the map, but a loop such as for i, val := range m cannot be used, otherwise a program error may occur.

The above is the detailed content of golang map delete element. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:golang hostname to ipNext article:golang hostname to ip