Comprendre les débordements constants dans Go
Le langage de programmation Go propose un système de type complet, y compris le concept de constantes. Cependant, lorsque vous travaillez avec des constantes, il est essentiel d'être conscient des débordements potentiels. Un tel cas implique d'utiliser une constante non typlée pour effectuer des opérations bit fait: = (userId & ^ (0xffff
Tout en tentant de compiler ce code, vous pouvez rencontrer le message d'erreur: ./ xxxx.go: 511: constante -18446462598732840961 déborde int
explication
userid := 12345
did := (userid & ^(0xFFFF L'expression ^ (0xffff lorsque vous attribuez le résultat de la fonctionnalité bit erreur. ./xxxx.go:511: constant -18446462598732840961 overflows int
solution
Pour résoudre ce problème, vous pouvez utiliser une constante alternative qui s'inscrit dans le type int. Par exemple, vous pouvez remplacer l'expression problématique par 1 Conseil supplémentaire
Si vous êtes à la portabilité, il est recommandé d'utiliser INT64 plutôt que dans votre code. Cela garantit que le code mentionné fonctionnera correctement même sur les systèmes où Int est 32 bits.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3