Sobes.tech
Junior — Middle

O que acontece no programa se uma variável do tipo int atingir o seu valor máximo e ocorrer um estouro durante a execução?

sobes.tech IA

Resposta da IA

Em Go, o tipo int é um tipo inteiro com sinal, cujo tamanho depende da arquitetura (geralmente 32 ou 64 bits). Se uma variável do tipo int atingir o seu valor máximo e ocorrer um estouro:

  • O valor "envolve-se" (wrap around) e torna-se o número negativo mínimo possível para esse tipo.
  • O estouro não causa erro ou exceção em tempo de execução.

Por exemplo, para um int de 32 bits, o valor máximo é 2.147.483.647. Ao aumentá-lo em 1, o valor torna-se -2.147.483.648.

Exemplo:

package main
import "fmt"

func main() {
    var x int32 = 2147483647 // valor máximo para int32
    fmt.Println(x)           // 2147483647
    x = x + 1
    fmt.Println(x)           // -2147483648 (estouro)
}

Portanto, ao trabalhar com números inteiros, é importante considerar a possibilidade de estouro e usar tipos com um intervalo maior ou realizar verificações adicionais.