Junior — Middle
Dasturda nima bo'ladi, agar int turidagi o'zgaruvchi o'zining maksimal qiymatiga yetib, bajarilish vaqtida to'ldirish yuzaga kelsa?
sobes.tech AI
AIdan javob
Go tilida int — bu imzo bilan raqamli tur, uning hajmi arxitekturaga bog‘liq (odatda 32 yoki 64 bit). Agar int turidagi o‘zgaruvchi uning maksimal qiymatiga yetib qolsa va to‘ldirish yuz bersa:
- Qiymat "qaytib o‘raladi" (wrap around) va bu tur uchun minimal mumkin bo‘lgan manfiy raqamga aylanadi.
- To‘ldirish bajarilish vaqtida xato yoki istisno chaqirmaydi.
Masalan, 32-bitli int uchun maksimal qiymat 2,147,483,647. Uni 1 ga oshirsangiz, qiymat -2,147,483,648 bo‘ladi.
Misol:
package main
import "fmt"
func main() {
var x int32 = 2147483647 // int32 uchun maksimal qiymat
fmt.Println(x) // 2147483647
x = x + 1
fmt.Println(x) // -2147483648 (to‘ldirish)
}
Shuning uchun, butun sonlar bilan ishlashda, to‘ldirish ehtimolini hisobga olish va kengroq diapazondagi turlar yoki qo‘shimcha tekshiruvlar qilish muhimdir.