Sobes.tech
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.