Junior — Middle
Šta će se dogoditi u programu ako promenljiva tipa int dostigne svoju maksimalnu vrednost i dođe do prelivanja tokom izvršavanja?
sobes.tech АИ
Одговор од АИ
U Go jeziku, tip int je potpisani celobrojni tip čija veličina zavisi od arhitekture (obično 32 ili 64 bita). Ako promenljiva tipa int dostigne svoju maksimalnu vrednost i dođe do prelivanja:
- Vrednost se "omota" (wrap around) i postaje minimalni mogući negativni broj za taj tip.
- Prelivanje ne izaziva grešku ili izuzetak tokom izvršavanja.
Na primer, za 32-bitni int, maksimalna vrednost je 2.147.483.647. Ako je povećate za 1, vrednost će biti -2.147.483.648.
Primer:
package main
import "fmt"
func main() {
var x int32 = 2147483647 // maksimalna vrednost za int32
fmt.Println(x) // 2147483647
x = x + 1
fmt.Println(x) // -2147483648 (prelivanje)
}
Zbog toga je prilikom rada sa celim brojevima važno uzeti u obzir mogućnost prelivanja i koristiti tipove sa većim opsegom ili izvršiti dodatne provere.