Conversion Int64 en Int dans Go : stratégies et pièges
Lorsque vous travaillez avec des types numériques dans Go, il est crucial de comprendre les différences subtiles entre eux. Un scénario courant est la nécessité de convertir un int64 (un entier de 64 bits) en un int (un entier de 32 bits).
Conversion de type et comparaison
Pour convertir int64 en int, effectuez simplement une conversion de type en utilisant le type de données respectif dans l'expression, tel que comme :
var a int64 var b int a = int64(b)
Cependant, soyez prudent lorsque vous comparez des valeurs de différents types. Convertissez toujours les caractères les plus petits en caractères plus grands pour éviter toute troncature potentielle. Par exemple :
var x int32 = 0 var y int64 = math.MaxInt32 + 1 // y == 2147483648 if x < int32(y) { // This evaluates to false, because int32(y) is -2147483648 }
Casting Int64 en Int avec des limitations
Dans votre exemple spécifique, où vous rencontrez l'erreur lors de la conversion de maxInt de int64 en int, considérez le suivant :
for a := 2; a < int(maxInt); a++ {
Ce code échouera lorsque maxInt dépasse la valeur maximale du type int sur votre système. Pour éviter ce problème, utilisez int64(a) < maxInt pour garantir que la comparaison est effectuée correctement.
N'oubliez pas que comprendre les nuances des différents types de données et des conversions de types est essentiel pour écrire du code Go robuste et efficace.
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!