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.
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] }
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é.
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] }
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.
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[] }
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!