Conversion Int64 en Int dans Go : prévention des erreurs
Dans Go, la conversion de int64 en int peut être difficile lorsque l'on compare les deux types. Cet article explore l'approche recommandée pour cette conversion afin d'éviter des résultats inattendus.
Conversion en caractères plus grands
Pour garantir l'exactitude, il est recommandé de convertir les caractères plus petits (en dans ce cas, int) au type plus grand (int64). Ceci peut être réalisé en utilisant la conversion de type :
var a int var b int64 int64(a) < b
Problèmes de troncature
Lors de la comparaison de valeurs, la conversion du type plus grand en type plus petit peut entraîner une perte ou une troncature de données. Prenons l'exemple suivant :
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 }
Dans ce scénario, la conversion de int64(y) en int32 entraîne -2147483648, perdant les bits d'ordre supérieur de la valeur d'origine.
Conversion optimisée pour maxInt
Pour les valeurs maxInt int64, envisagez d'utiliser la conversion suivante :
for a := 2; a < int(maxInt); a++ { // Execute correctly even if maxInt exceeds the maximum value of int }
En convertissant maxInt en int et en utilisant int() pour vous assurer que le sous-type int correct est utilisé, les problèmes de débordement peuvent être évités tout en garantissant la comparaison souhaitée.
Conclusion
Aborder la conversion int64 en int avec un examen attentif des tailles de caractères permet d'éviter les erreurs et garantit des comparaisons précises . En adhérant au principe de conversion du type plus petit en type plus grand, les développeurs peuvent éviter la perte de données et obtenir des résultats fiables lorsqu'ils travaillent avec différents types numériques 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!