Conversion de Int64 en Int dans Go : un guide
La conversion de type est une tâche courante en programmation, et dans Go, il est simple de convertir entre deux types entiers. Comprendre les différences entre int et int64 est crucial pour des conversions précises et efficaces.
Le défi
Lorsque vous travaillez avec int64 (entier 64 bits) et int (32- bit entier) dans Go, les développeurs peuvent être confrontés au besoin de comparer les valeurs de ces deux types. Cependant, la conversion de int64 en int peut être délicate, car une comparaison directe peut conduire à des résultats inattendus en raison d'un débordement ou d'un sous-débordement.
Par exemple, une erreur courante consiste à convertir directement une valeur int64 en int, comme indiqué dans le extrait de code fourni :
for a := 2; a < maxInt; a++ { if isPrime(a) { if base.N % a == 0 { base.Result = a } } }
Ici, maxInt est une valeur int64 et la condition de boucle (a < maxInt) tente de comparer un int32 (a) avec un int64. Cela peut conduire à des résultats incorrects.
La solution
Pour comparer avec précision les valeurs int64 avec int dans Go, la bonne approche consiste à convertir le type int en int64. Cela garantit que les deux valeurs sont du même type, éliminant ainsi le risque de débordement ou de sous-débordement :
for a := 2; a < int64(maxInt); a++ { if isPrime(a) { if base.N % a == 0 { base.Result = a } } }
En convertissant a en int64, la condition de boucle compare correctement une valeur int64 à une autre valeur int64, garantissant ainsi une comparaison appropriée. .
Remarques supplémentaires
Lors de l'exécution de cette conversion de type, il est important de prendre en compte le potentiel de débordement ou de sous-débordement. Si la valeur convertie est trop grande pour le type cible, cela peut entraîner un débordement, conduisant à une valeur incorrecte. À l'inverse, si la valeur convertie est trop petite, cela peut entraîner un dépassement inférieur, ce qui peut tronquer la valeur à une limite inférieure.
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!