03 / 68

Data Types

Ma'lumot turlari

Go dasturlash tilida ma'lumot turlari o'zgaruvchilar bilan bog'liq bo'lgan ma'lumot turini aniqlash uchun ishlatiladi. Masalan:

example.go
var age int

Bu yerda int ma'lumot turi bo'lib, age o'zgaruvchisi butun sonli ma'lumotlarni saqlashini belgilaydi.

Godagi asosiy ma'lumot turlari

Quyidagi jadvalda Go dasturlash tilidagi asosiy ma'lumot turlari keltirilgan:

Ma'lumot turiTavsifMisollar
intButun sonlar.7123, 0, -5, 7023
floatO'nlik kasrli sonlar.20.2, 500.123456, -34.23
complexKompleks sonlar.2+4i, -9.5+18.3i
stringBelgilar ketma-ketligi (matn)."Salom Dunyo!", "1 soni 2 dan kichik"
booltrue yoki false mantiqiy qiymat.true, false
byteBayt (8 bit) manfiy bo'lmagan butun sonlar.2, 115, 97
runeYagona belgilar uchun (ichki jihatdan 32-bitli butun son).'a', '7', '<'

Endi eng ko'p qo'llaniladigan ma'lumot turlarini batafsil ko'rib chiqamiz.


1. Butun sonlar (Integers)

Butun sonlar — nol, musbat va manfiy qiymatlarga ega bo'lishi mumkin bo'lgan, ammo o'nlik kasr qismi bo'lmagan sonlardir (masalan: 0, 5, -1340).

Butun sonlarni e'lon qilish uchun odatda int kalit so'zidan foydalanamiz:

example.go
var id int

Bu yerda id — butun son turidagi o'zgaruvchidir.

Bir qatorda bir nechta o'zgaruvchini ham e'lon qilishingiz mumkin:

example.go
var id, age int

Go dasturlash tilida butun sonlarning ikkita asosiy toifasi mavjud:

  • Ishorali butun sonlar (int): musbat va manfiy butun sonlarni saqlay oladi.
  • Ishorasiz butun sonlar (uint): faqat noldan katta yoki teng bo'lgan musbat sonlarni saqlaydi.

Go tilida butun sonlarning quyidagi variantlari va o'lchamlari mavjud:

Ma'lumot turiO'lchami
int / uint32 bit (4 bayt) yoki 64 bit (8 bayt) — operatsion tizim arxitekturasiga bog'liq
int8 / uint88 bit (1 bayt)
int16 / uint1616 bit (2 bayt)
int32 / uint3232 bit (4 bayt)
int64 / uint6464 bit (8 bayt)

[!NOTE] Agar dasturingizda maxsus talab bo'lmasa, butun sonlar yaratish uchun odatda oddiy int kalit so'zidan foydalaniladi.

Misol 1: Butun sonlar

example.go
package main

import "fmt"

func main() {
    var integer1 int
    var integer2 int

    integer1 = 5
    integer2 = 10

    fmt.Println(integer1)
    fmt.Println(integer2)
}

Natija:

matn
5
10

2. Kasr sonlar (Floating-Point Numbers)

float turi o'nlik kasrli qiymatlarni saqlash uchun ishlatiladi (masalan: 6.7, -34.2).

Ishlatiladigan kalit so'zlar: float32, float64.

Misol:

example.go
var salary float64

Go tilida suzuvchi nuqtali sonlarning ikkita o'lchami mavjud:

Ma'lumot turiO'lchami
float3232 bit (4 bayt)
float6464 bit (8 bayt)

[!NOTE] Agar o'zgaruvchini := orqali turini aniq ko'rsatmasdan kasr son bilan e'lon qilsangiz (masalan, salary := 5676.3), uning turi avtomatik ravishda float64 deb belgilanadi.

Misol 2: float32 va float64 bilan ishlash

example.go
// float32 va float64 aniqligini ko'rsatuvchi dastur
package main

import "fmt"

func main() {
    var salary1 float32
    var salary2 float64

    salary1 = 50000.503882901
    // float64 o'nlik kasrlarni ancha yuqori aniqlik bilan saqlaydi
    salary2 = 50000.503882901

    fmt.Println(salary1)
    fmt.Println(salary2)
}

Natija:

matn
50000.504
50000.503882901

3. Satrlar (Strings)

Satr (string) — bu belgilar ketma-ketligidir (masalan: "Salom", "Go dasturlash tili").

Kalit so'z: string.

Misol:

example.go
var message string

Go tilida satrlarni yaratish uchun qo'shtirnoq ("...") yoki teskari tirnoq (backtick `...`) ishlatiladi:

example.go
var message1 string = "Salom Dunyo"
var message2 string = `Salom Dunyo`

Misol 3: String o'zgaruvchilari

example.go
// String o'zgaruvchisini yaratish dasturi
package main

import "fmt"

func main() {
    var message string
    message = "Go Dasturchi portaliga xush kelibsiz!"
    fmt.Println(message)
}

Natija:

matn
Go Dasturchi portaliga xush kelibsiz!

4. Mantiqiy qiymat (Booleans)

Mantiqiy (boolean) ma'lumot turi faqat ikkita mumkin bo'lgan qiymatga ega: true (rost) yoki false (yolg'on).

Kalit so'z: bool.

Misol:

example.go
var isValid bool

Misol 4: bool turini tushunish

example.go
// Boolean o'zgaruvchisi yaratish dasturi
package main

import "fmt"

func main() {
    var boolValue bool
    boolValue = false
    fmt.Println(boolValue)
}

Natija:

matn
false
example.go
package main

import "fmt"

func main() {
    var integerVal int = 42
    var floatVal float64 = 3.1415926535
    var stringVal string = "Go Dasturchi"
    var boolVal bool = true

    fmt.Println("Integer:", integerVal)
    fmt.Println("Float:", floatVal)
    fmt.Println("String:", stringVal)
    fmt.Println("Boolean:", boolVal)
}