Maison >développement back-end >Golang >Comment gérer les erreurs « Adresse mémoire invalide ou déréférencement de pointeur nul » lors de l'accès aux éléments de la carte dans Go ?
"Map[string]*Type "Adresse mémoire invalide ou déréférencement de pointeur nul"
Lors de l'accès aux champs d'une structure, vous pouvez rencontrer le erreur "adresse mémoire invalide ou déréférencement de pointeur nul." Cela indique généralement que le pointeur vers la structure n'est pas initialisé ou pointe vers une mémoire invalide. adresse.
Dans votre cas, vous essayez de définir un champ dans une carte de conditions. Cependant, comme la carte de conditions est une carte vide de pointeurs, vous récupérez une valeur nulle pour *guardduty.Condition de. condition.
Selon "Maps in Action" pour Go, vous pouvez tester la présence d'une clé à l'aide d'une affectation à deux valeurs :
i, ok := m["route"]
Dans cette affectation, i reçoit la valeur stockée sous la clé « route ». Si la clé n'existe pas, i se voit attribuer la valeur zéro du type de valeur (0). La deuxième valeur, ok, est un booléen qui indique si la clé existe. dans la carte.
Pour résoudre le problème, modifiez votre code comme suit :
if cond, ok := condition["id"]; !ok { // <nil> false log.Println("Pointer is null") } else { // Initialize a new guardduty.Condition // and assign it to the required key nc := &guardduty.Condition{Equals: strPtr} condition["id"] = nc }
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!