Sobes.tech
Junior — Middle

Какво ще се случи в програмата, ако променлива от тип int достигне максималната си стойност и се случи препълване по време на изпълнение?

sobes.tech AI

Отговор от AI

В Go типът int е целочислен тип със знакове, размерът му зависи от архитектурата (обикновено 32 или 64 бита). Ако променлива от тип int достигне максималната си стойност и настъпи препълване:

  • Стойността "се завърта" (wrap around) и става минимално възможното отрицателно число за този тип.
  • Препълването не предизвиква грешка или изключение по време на изпълнение.

Например, за 32-битов int, максималната стойност е 2,147,483,647. Ако я увеличите с 1, стойността става -2,147,483,648.

Пример:

package main
import "fmt"

func main() {
    var x int32 = 2147483647 // максимална стойност за int32
    fmt.Println(x)           // 2147483647
    x = x + 1
    fmt.Println(x)           // -2147483648 (препълване)
}

Затова при работа с цели числа е важно да се вземе предвид възможността за препълване и да се използват типове с по-голям диапазон или допълнителни проверки.