Maison >développement back-end >Golang >Comment puis-je utiliser en toute sécurité les cartes imbriquées dans Go et éviter les paniques d'exécution ?
Dans Go, la valeur zéro pour les cartes est nulle, ce qui signifie une carte non initialisée. Le stockage de valeurs dans une carte nulle entraîne une panique d'exécution. Cela peut être vu dans l'exemple suivant :
func main() { var data = map[string]map[string]string{} data["a"]["w"] = "x" println(data) }
Ce code paniquera au moment de l'exécution avec l'erreur "affectation à une entrée dans une carte nulle". Pour éviter ce problème, initialisez explicitement la carte avant de lui attribuer des valeurs, comme indiqué ci-dessous :
func main() { var data = map[string]map[string]string{} data["a"] = make(map[string]string) data["a"]["w"] = "x" println(data) }
Dans cet exemple, make(map[string]string) crée une nouvelle carte vide de type map[string ]string.
Une autre façon d'initialiser les cartes imbriquées consiste à utiliser des littéraux composites :
func main() { var data = map[string]map[string]string{ "a": map[string]string{}, "b": map[string]string{}, "c": map[string]string{}, } data["a"]["w"] = "x" println(data) }
Les deux méthodes initialiseront correctement les cartes imbriquées mapper et permettre le stockage des valeurs sans provoquer de panique à l'exécution.
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!