Junior — Middle
Ce se întâmplă în programă dacă o variabilă de tip int atinge valoarea sa maximă și are loc o depășire în timpul execuției?
sobes.tech AI
Răspuns de la AI
În Go, tipul int este un tip întreg cu semn, a cărui dimensiune depinde de arhitectură (de obicei 32 sau 64 de biți). Dacă o variabilă de tip int atinge valoarea maximă și are loc o depășire:
- Valoarea "se învârte" (wrap around) și devine numărul negativ minim posibil pentru acest tip.
- Depășirea nu provoacă o eroare sau excepție în timpul execuției.
De exemplu, pentru un int de 32 de biți, valoarea maximă este 2.147.483.647. Dacă îi adăugați 1, valoarea devine -2.147.483.648.
Exemplu:
package main
import "fmt"
func main() {
var x int32 = 2147483647 // valoarea maximă pentru int32
fmt.Println(x) // 2147483647
x = x + 1
fmt.Println(x) // -2147483648 (depășire)
}
Prin urmare, atunci când lucrați cu numere întregi, este important să țineți cont de posibilitatea depășirii și să utilizați tipuri cu un interval mai mare sau să efectuați verificări suplimentare.