Maison > développement back-end > Golang > carte golang supprimer des éléments

carte golang supprimer des éléments

WBOY
Libérer: 2023-05-10 16:18:08
original
1092 Les gens l'ont consulté

Dans Golang, la carte est une structure de données très couramment utilisée, qui constitue un moyen pratique de stocker des paires clé-valeur. Cependant, lors de l’utilisation de map, nous devons souvent supprimer un élément. Dans cet article, nous examinerons en profondeur comment la carte Golang supprime des éléments.

Dans Golang, nous pouvons utiliser la fonction delete() pour supprimer des éléments de la carte. La syntaxe de la fonction delete() est très simple, il suffit de fournir la map et la clé à supprimer. Voici un exemple de code pour la fonction delete() :

// 创建一个map
m := map[string]int{
    "a": 1,
    "b": 2,
    "c": 3,
}

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

// 打印map中的所有元素
fmt.Println(m)
Copier après la connexion

Exécutez ce code, le résultat sera :

map[b:2 c:3]
Copier après la connexion

Nous pouvons voir que l'élément avec la clé "a" a été supprimé de la carte.

Cependant, avant de supprimer l'élément, nous devons nous assurer que la clé existe dans la carte. Sinon, l'opération de suppression déclenchera une exception de panique. Afin d'éviter cette situation, nous pouvons utiliser des déclarations de jugement pour vérifier avant suppression, par exemple :

if _, ok := m["a"]; ok {
    delete(m, "a")
}
Copier après la connexion

Dans l'exemple de code ci-dessus, nous utilisons d'abord "_, ok := m["a"]" pour juger s'il existe dans la carte L'élément avec la clé "a". Si elle est présente, la valeur de ok sera vraie. Ensuite, nous utilisons la fonction delete() pour supprimer l’élément. De cette façon, même si la clé n’existe pas dans la map, l’exception panique ne sera pas déclenchée.

De plus, nous pouvons également utiliser la fonction delete() pour supprimer des éléments lors d'une boucle sur la carte. Cependant, dans ce cas, nous devons prêter attention à certains détails. Par exemple, si vous supprimez des éléments dans une boucle, certains éléments peuvent être ignorés pendant le parcours. Plus précisément, lorsque nous supprimons un élément, les indices des éléments suivants changent, entraînant l'omission de certains éléments. Afin d'éviter ce problème, nous pouvons utiliser une tranche pour stocker l'indice de l'élément à supprimer et supprimer la carte une fois la boucle terminée. Voici l'exemple de code :

m := map[string]int{
    "a": 1,
    "b": 2,
    "c": 3,
    "d": 4,
    "e": 5,
}

// 存储要删除的元素的下标
var toDelete []string

// 遍历map并删除"b"和"e"元素
for k, v := range m {
    if k == "b" || k == "e" {
        toDelete = append(toDelete, k)
    }
}

// 执行删除操作
for _, k := range toDelete {
    delete(m, k)
}

// 打印map中的所有元素
fmt.Println(m)
Copier après la connexion

Dans l'exemple de code ci-dessus, nous définissons d'abord une tranche toDelete pour stocker l'indice de l'élément à supprimer. Ensuite, lors du parcours de la carte, si la clé s'avère être "b" ou "e", son indice est ajouté à toDelete. Enfin, une fois la boucle terminée, nous utilisons une autre boucle pour supprimer la carte et supprimer tous les éléments stockés dans toDelete.

En résumé, la carte dans Golang offre un moyen pratique de stocker des paires clé-valeur. Cependant, lors de l’utilisation de la carte, nous devons faire attention à certains détails, notamment lors de la suppression d’éléments. Afin d'éviter toute interruption du programme, nous devons d'abord vérifier si l'élément à supprimer existe, et ne pas supprimer l'élément directement dans la boucle. Au lieu de cela, utiliser une tranche pour enregistrer l'indice de l'élément à supprimer, et enfin exécuter. l’opération de suppression.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal