Maison développement back-end Golang élément de suppression de la carte Golang

élément de suppression de la carte Golang

May 10, 2023 pm 12:21 PM

La carte en golang est une structure de données très utile qui peut mapper une paire clé-valeur à une autre valeur, permettant une recherche et un stockage rapides. Normalement, nous ajoutons des éléments à une carte, mais parfois nous devons également supprimer des éléments de la carte. Cet article explique comment supprimer des éléments de la carte dans Golang.

  1. Supprimer un seul élément

La méthode pour supprimer un seul élément est très simple, il suffit d'utiliser la fonction delete(). Par exemple :

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]
}
Copier après la connexion

Nous définissons d'abord une carte de la chaîne à l'entier, puis utilisons la fonction delete() pour supprimer l'élément avec la clé a. Enfin, les éléments de la carte sont affichés et vous pouvez voir que l'élément a a été supprimé.

  1. Supprimer des éléments inexistants

Lorsque nous supprimons un élément qui n'existe pas dans la carte, la fonction delete() ne générera pas une erreur, Aucune modification ne sera apportée à la carte. Par exemple :

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]
}
Copier après la connexion

Dans l'exemple ci-dessus, nous avons supprimé l'élément avec la clé d qui n'existait pas dans la carte, mais le programme n'a pas signalé d'erreur et n'a apporté aucune modification à la carte.

  1. Supprimer tous les éléments

Pour supprimer tous les éléments, nous pouvons utiliser une boucle for pour parcourir la carte puis supprimer chaque élément à son tour. Par exemple :

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[]
}
Copier après la connexion

Dans l'exemple ci-dessus, nous définissons d'abord une carte de la chaîne à l'entier, puis utilisons une boucle for pour parcourir la carte et supprimer chaque élément à tour de rôle. Enfin, les éléments de la carte sont affichés et vous pouvez voir que la carte est vide.

Il est à noter que lors de la suppression d'éléments dans la carte, on ne peut pas utiliser une boucle telle que for i, val := range m, car cette boucle traversera deux fois les éléments de la carte et supprimera Après des éléments sont ajoutés, la longueur de la carte et le compteur parcouru changeront, ce qui peut provoquer le crash du programme. Par conséquent, nous ne pouvons utiliser qu'une boucle comme for k := range m pour parcourir la carte.

Résumé :

Pour supprimer des éléments dans une carte dans Golang, nous pouvons utiliser la fonction delete() pour supprimer un seul élément, ou nous pouvons utiliser une boucle for pour parcourir la carte, puis supprimez chaque élément tour à tour. Il convient de noter que lors de la suppression d'éléments dans une carte, une boucle telle que for k := range m doit être utilisée pour parcourir la carte, mais une boucle telle que for i, val := range m ne peut pas être utilisée, sinon un programme une erreur peut survenir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

GO Language Pack Import: Quelle est la différence entre le soulignement et sans soulignement? GO Language Pack Import: Quelle est la différence entre le soulignement et sans soulignement? Mar 03, 2025 pm 05:17 PM

GO Language Pack Import: Quelle est la différence entre le soulignement et sans soulignement?

Comment mettre en œuvre le transfert d'informations à court terme entre les pages du cadre Beego? Comment mettre en œuvre le transfert d'informations à court terme entre les pages du cadre Beego? Mar 03, 2025 pm 05:22 PM

Comment mettre en œuvre le transfert d'informations à court terme entre les pages du cadre Beego?

Comment écrire des objets et des talons simulés pour les tests en Go? Comment écrire des objets et des talons simulés pour les tests en Go? Mar 10, 2025 pm 05:38 PM

Comment écrire des objets et des talons simulés pour les tests en Go?

Comment convertir la liste des résultats de la requête MySQL en une tranche de structure personnalisée dans le langage Go? Comment convertir la liste des résultats de la requête MySQL en une tranche de structure personnalisée dans le langage Go? Mar 03, 2025 pm 05:18 PM

Comment convertir la liste des résultats de la requête MySQL en une tranche de structure personnalisée dans le langage Go?

Comment puis-je définir des contraintes de type personnalisé pour les génériques en Go? Comment puis-je définir des contraintes de type personnalisé pour les génériques en Go? Mar 10, 2025 pm 03:20 PM

Comment puis-je définir des contraintes de type personnalisé pour les génériques en Go?

Comment puis-je utiliser des outils de traçage pour comprendre le flux d'exécution de mes applications GO? Comment puis-je utiliser des outils de traçage pour comprendre le flux d'exécution de mes applications GO? Mar 10, 2025 pm 05:36 PM

Comment puis-je utiliser des outils de traçage pour comprendre le flux d'exécution de mes applications GO?

Comment rédigez-vous des tests unitaires en Go? Comment rédigez-vous des tests unitaires en Go? Mar 21, 2025 pm 06:34 PM

Comment rédigez-vous des tests unitaires en Go?

Comment écrire des fichiers dans GO Language de manière pratique? Comment écrire des fichiers dans GO Language de manière pratique? Mar 03, 2025 pm 05:15 PM

Comment écrire des fichiers dans GO Language de manière pratique?

See all articles