Sobes.tech
Junior — Middle

Wat gebeurt er in het programma als een variabele van het type int zijn maximale waarde bereikt en er tijdens de uitvoering een overflow optreedt?

sobes.tech AI

Antwoord van AI

In Go is het type int een signed geheel getal, waarvan de grootte afhangt van de architectuur (meestal 32 of 64 bits). Als een variabele van het type int zijn maximale waarde bereikt en er treedt een overflow op:

  • De waarde "wrapt" (omwikkelt) en wordt het minimaal mogelijke negatieve getal voor dat type.
  • Overflow veroorzaakt geen fout of uitzondering tijdens runtime.

Bijvoorbeeld, voor een 32-bit int is de maximale waarde 2.147.483.647. Als je er 1 bij optelt, wordt de waarde -2.147.483.648.

Voorbeeld:

package main
import "fmt"

func main() {
    var x int32 = 2147483647 // max. waarde voor int32
    fmt.Println(x)           // 2147483647
    x = x + 1
    fmt.Println(x)           // -2147483648 (overflow)
}

Daarom is het bij werken met gehele getallen belangrijk om rekening te houden met de mogelijkheid van overflow en types met een groter bereik te gebruiken of extra controles uit te voeren.