Sobes.tech
Junior — Middle

Go tilida slices'larni qanday to'g'ri yaratish va boshlash kerak?

sobes.tech AI

AIdan javob

Go tilida, dilimlar (slices) — bu dinamik ma'lumotlar tuzilmalari bo'lib, ular uzunligi va quvvati belgilangan massivga havolani ifodalaydi.

Dilimlar bir nechta usul bilan yaratilishi va boshlanishi mumkin:

  1. Boshlang'ichsiz dilim e'lon qilish (nil-dilim):
var s []int // nil-dilim, uzunligi va quvvati 0
  1. Literal yordamida dilimni boshlash:
s := []int{1, 2, 3} // uzunligi 3 bo'lgan dilim
  1. make funksiyasi yordamida dilim yaratish:
s := make([]int, 5) // uzunligi 5, nol bilan to'ldirilgan dilim
s2 := make([]int, 3, 10) // uzunligi 3, quvvati 10

make funksiyasi orqa fonda massiv ajratadi va unga ishora qiluvchi dilimni qaytaradi.

  1. Massivdan dilim yaratish:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // indekslari 1,2,3 bo'lgan elementlar dilimi

Dilimlar massivlarga havola ekanligini va dilimdagi elementlarni o'zgartirish oriq massivni ham o'zgartirishini unutmang.

Misol uchun:

package main
import "fmt"

func main() {
    s := make([]int, 3, 5)
    fmt.Println(s)       // [0 0 0]
    fmt.Println(len(s))  // 3
    fmt.Println(cap(s))  // 5

    s = append(s, 4, 5)
    fmt.Println(s)       // [0 0 0 4 5]
    fmt.Println(len(s))  // 5
    fmt.Println(cap(s))  // 5
}

Ushbu yondashuv Go'da dinamik massivlar bilan samarali ishlash imkonini beradi.