Junior — Middle
Que se passera-t-il dans le programme si une variable de type int atteint sa valeur maximale et qu'un dépassement de capacité se produit lors de l'exécution?
sobes.tech IA
Réponse de l'IA
En Go, le type int est un type entier signé dont la taille dépend de l'architecture (généralement 32 ou 64 bits). Si une variable de type int atteint sa valeur maximale et qu'un dépassement de capacité se produit :
- La valeur "enroule" (wrap around) et devient le nombre négatif minimal possible pour ce type.
- Le dépassement ne provoque pas d'erreur ou d'exception à l'exécution.
Par exemple, pour un int de 32 bits, la valeur maximale est 2 147 483 647. En l'augmentant de 1, la valeur devient -2 147 483 648.
Exemple :
package main
import "fmt"
func main() {
var x int32 = 2147483647 // valeur max pour int32
fmt.Println(x) // 2147483647
x = x + 1
fmt.Println(x) // -2147483648 (dépassement)
}
Par conséquent, lors de la manipulation de nombres entiers, il est important de prendre en compte la possibilité de dépassement et d'utiliser des types avec une plage plus grande ou d'effectuer des vérifications supplémentaires.