Erreur de conversion d'interface nulle en pointeur dans GoLang
Dans GoLang, tentative de conversion d'une interface nulle en pointeur d'un type spécifique, comme illustré ci-dessous, déclenche une erreur :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Cette erreur se produit car une variable de type statique de type interface (par exemple, Nexter) peut contenir des valeurs de différents types dynamiques, y compris zéro. Bien qu'il soit possible de convertir une valeur nulle en pointeur à l'aide de (*Node)(nil), l'assertion de type utilisée dans l'exemple ne peut pas être appliquée car :
1 |
|
exige que x soit non- nil et de type T. Dans ce cas, p peut contenir des valeurs de différents types ou nul.
Au lieu de cela, des vérifications explicites peuvent être employé :
1 2 3 |
|
Alternativement, le formulaire « virgule-ok » offre une option plus sûre :
1 2 3 |
|
L'utilisation du formulaire « virgule-ok » permet de gérer à la fois les valeurs nulles et non- valeurs d'interface nulles sans déclencher de panique.
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!