Junior — Middle
Əgər int növündəki dəyişən maksimum dəyərinə çatarsa və icra zamanı daşma baş verərsə, proqramda nə baş verəcək?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində int tipi işarəli tam ədədi tipidir və ölçüsü arxitekturaya bağlıdır (adətən 32 və ya 64 bit). Əgər int tipində dəyişən maksimum dəyərinə çatarsa və daşma baş verərsə:
- Dəyər "sarmalanır" (wrap around) və bu tip üçün mümkün olan ən kiçik mənfi ədədlə əvəz olunur.
- Daşma işləmə zamanı səhv və ya istisna yaratmır.
Məsələn, 32-bitlik int üçün maksimum dəyər 2,147,483,647-dir. Onu 1 artıranda, dəyər -2,147,483,648 olur.
Nümunə:
package main
import "fmt"
func main() {
var x int32 = 2147483647 // int32 üçün maksimum dəyər
fmt.Println(x) // 2147483647
x = x + 1
fmt.Println(x) // -2147483648 (daşma)
}
Bu səbəbdən, tam ədədlərlə işləyərkən, daşma ehtimalını nəzərə almaq və daha geniş diapazona malik tiplər və ya əlavə yoxlamalar istifadə etmək vacibdir.