Lors de la récupération de données à partir de JSON et de la tentative de conversion en un entier, vous pouvez rencontrer une erreur indiquant que vous ne pouvez pas convertir une interface{} vers un int. Cette erreur se produit en raison des règles d'assertion de type de Go.
Dans votre code, vous avez la ligne suivante :
iAreaId := int(val)
Cette ligne tente de convertir le val, qui a le type interface{ }, en un int en utilisant un transtypage. Cependant, la conversion de type d'une interface{} en int n'est pas autorisée.
Pour résoudre ce problème, vous devez utiliser une assertion de type à la place :
iAreaId := val.(int)
Une assertion de type extrait le sous-jacent valeur de l'interface{} si elle a le type déclaré. Si la valeur n'a pas le type déclaré, l'assertion de type paniquera.
Vous pouvez également utiliser une version sans panique de l'assertion de type en utilisant une deuxième valeur de retour :
iAreaId, ok := val.(int)
La variable ok sera vraie si l'assertion de type a réussi et fausse si elle a échoué.
En utilisant correctement une assertion de type, vous pouvez convertir avec succès une interface{} à un int dans Go.
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!