Integer

...

SU

Go Butun Son Ma'lumot Turlari

Butun son ma'lumot turlari butun sonlarni saqlash uchun ishlatiladi, masalan, 35, -50 yoki 1345000.

Butun son ma'lumot turlari ikkiga bo'linadi:

  • Signed butun sonlar - musbat va manfiy qiymatlarni saqlash imkonini beradi.
  • Unsigned butun sonlar - faqat musbat yoki nol qiymatlarni saqlash imkonini beradi.

Eslatma

Butun sonlarning standart turi int. Agar siz turini ko'rsatmasangiz, tur int bo'ladi.

Signed Butun Sonlar

Signed butun sonlar, int kalit so'zlaridan biri bilan e'lon qilingan, musbat va manfiy qiymatlarni saqlash imkonini beradi:

Misol

package main
import ("fmt")
 
func main() {
  var x int = 500
  var y int = -4500
  fmt.Printf("Tur: %T, qiymat: %v\n", x, x)
  fmt.Printf("Tur: %T, qiymat: %v\n", y, y)
}

Go'da signed butun sonlar uchun beshta kalit so'z/tur mavjud:

TurO'lchamQiymatlar Oralig'i
intPlatformaga qarab: 32 bitli tizimlarda 32 bit va 64 bitli tizimlarda 64 bit32 bitli tizimlarda -2147483648 dan 2147483647 gacha va 64 bitli tizimlarda -9223372036854775808 dan 9223372036854775807 gacha
int 88 bit/1 byte-128 dan 127 gacha
int 1616 bit/2 byte-32768 dan 32767 gacha
int 3232 bit/4 byte-2147483648 dan 2147483647 gacha
int 6464 bit/8 byte-9223372036854775808 dan 9223372036854775807 gacha

Unsigned Butun Sonlar

Unsigned butun sonlar, uint kalit so'zlaridan biri bilan e'lon qilingan, faqat musbat yoki nol qiymatlarni saqlash imkonini beradi:

Misol

package main
import ("fmt")
 
func main() {
  var x uint = 500
  var y uint = 4500
  fmt.Printf("Tur: %T, qiymat: %v\n", x, x)
  fmt.Printf("Tur: %T, qiymat: %v\n", y, y)
}

Go'da Unsigned butun sonlar uchun beshta kalit so'z/tur mavjud:

TurO'lchamQiymatlar Oralig'i
uintPlatformaga qarab: 32 bitli tizimlarda 32 bit va 64 bitli tizimlarda 64 bit32 bitli tizimlarda 0 dan 4294967295 gacha va 64 bitli tizimlarda 0 dan 18446744073709551615 gacha
uint 88 bit/1 byte0 dan 255 gacha
uint 1616 bit/2 byte0 dan 65535 gacha
uint 3232 bit/4 byte0 dan 4294967295 gacha
uint 6464 bit/8 byte0 dan 18446744073709551615 gacha

Qaysi Butun Son Turini Tanlash Kerak?

O'zgaruvchi saqlashi kerak bo'lgan qiymatga qarab butun son turini tanlash zarur.

Misol

Quyidagi misol int8 turi uchun 1000 qiymati oralig'idan chiqib ketganligi sababli xato natija beradi:

package main
import ("fmt")
 
func main() {
  var x int8 = 1000
  fmt.Printf("Tur: %T, qiymat: %v\n", x, x)
}

Natija:

./prog.go:5:7: constant 1000 overflows int8

Ushbu sahifada

GitHubda tahrirlash