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 (препълване)
}
Затова при работа с цели числа е важно да се вземе предвид възможността за препълване и да се използват типове с по-голям диапазон или допълнителни проверки.