Go by Example: Arrays

Go’da massiv — bu aniq uzunlikka ega bo’lgan, raqamlangan elementlar ketma-ketligidir. Odatdagi Go kodida slices ancha keng tarqalgan; massivlar esa ba’zi maxsus holatlarda foydali bo’ladi.

package main
import "fmt"
func main() {

Bu yerda biz aniq 5 ta int saqlaydigan a massivini yaratamiz. Elementlarning tipi ham, uzunligi ham massiv tipining bir qismidir. Standart holatda massiv nol qiymatga ega bo’ladi, bu intlar uchun 0larni bildiradi.

    var a [5]int
    fmt.Println("emp:", a)

array[index] = value sintaksisi yordamida indeksdagi qiymatni o’rnatishimiz, array[index] orqali esa qiymatni olishimiz mumkin.

    a[4] = 100
    fmt.Println("set:", a)
    fmt.Println("get:", a[4])

O’rnatilgan len funksiyasi massivning uzunligini qaytaradi.

    fmt.Println("len:", len(a))

Massivni bitta qatorda e’lon qilish va initsializatsiya qilish uchun ushbu sintaksisdan foydalaning.

    b := [5]int{1, 2, 3, 4, 5}
    fmt.Println("dcl:", b)

Shuningdek, ... yordamida elementlar sonini kompilyatorning o’zi hisoblashiga ham yo’l qo’yishingiz mumkin.

    b = [...]int{1, 2, 3, 4, 5}
    fmt.Println("dcl:", b)

Agar indeksni : bilan ko’rsatsangiz, oradagi elementlar nolga tenglashtiriladi.

    b = [...]int{100, 3: 400, 500}
    fmt.Println("idx:", b)

Massiv tiplari bir o’lchamlidir, lekin tiplarni birlashtirib, ko’p o’lchamli ma’lumotlar tuzilmalarini qurishingiz mumkin.

    var twoD [2][3]int
    for i := range 2 {
        for j := range 3 {
            twoD[i][j] = i + j
        }
    }
    fmt.Println("2d: ", twoD)

Ko’p o’lchamli massivlarni bir vaqtning o’zida yaratish va initsializatsiya qilish ham mumkin.

    twoD = [2][3]int{
        {1, 2, 3},
        {1, 2, 3},
    }
    fmt.Println("2d: ", twoD)
}

E’tibor bering, massivlar fmt.Println bilan chop etilganda [v1 v2 v3 ...] ko’rinishida namoyon bo’ladi.

$ go run arrays.go
emp: [0 0 0 0 0]
set: [0 0 0 0 100]
get: 100
len: 5
dcl: [1 2 3 4 5]
dcl: [1 2 3 4 5]
idx: [100 0 0 400 500]
2d:  [[0 1 2] [1 2 3]]
2d:  [[1 2 3] [1 2 3]]

Keyingi misol: .