Maison >développement back-end >Golang >Pourquoi les assertions de type échouent-elles lors de la conversion en alias de type dans Go ?
Casting vers des alias de type dans Go
Lors de la conversion vers un alias de type dans Go, les assertions de type sont utilisées au lieu de la conversion. Cependant, le comportement des assertions de type diffère de celui des conversions de type.
Conversions de type
Les conversions de type se produisent automatiquement lorsqu'une valeur est stockée dans une variable d'un type différent. . Par exemple, l'attribution d'un int à une variable float64 entraîne une conversion de type.
Assertions de type
Les assertions de type vérifient explicitement si une valeur stockée dans une variable d'interface{} est d'un type spécifique. Ils prennent la forme a.(T), où a est la variable et T est le type cible.
Problème de conversion en alias de type
Comme indiqué dans le fourni l'extrait de terrain de jeu, tenter de convertir une variable interface{} en un alias de type (somethingFuncy) entraîne une panique. En effet, les assertions de type nécessitent que le type dynamique de la valeur soit identique au type cible.
Explication
Dans Go, l'identité de type fait référence à deux types nommés ayant le même nom de type et provenant du même TypeSpec. Étant donné que les alias de type sont effectivement des types nommés, ils doivent avoir exactement le même nom de type et la même déclaration pour être considérés comme identiques.
Conclusion
Casting pour taper des alias dans Go en utilisant le type Les assertions ne sont pas possibles car le type alias doit être identique au type cible. Seul le type exactement du même nom peut être affirmé.
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!