Sobes.tech
Senior

Go'da massiv va dilim o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Go tilida massiv (array) — bu belgilangan o‘lchamli tuzilma bo‘lib, uning o‘lchami e’lon qilishda belgilangan va o‘zgartirilmaydi. Massivlar elementlarni ketma-ket xotirada saqlaydi va funksiyaga uzatilganda to‘liq nusxa olinadi.

Slyss (slice) — bu dinamik, o‘lchami o‘zgaruvchan tur bo‘lib, u massivning ketma-ket bo‘lakka havola qiladi. Slyss birinchi elementga ishora qiluvchi ko‘rsatkich, uzunligi va sig‘imi (kapasitesi)ni o‘z ichiga oladi.

Asosiy farqlar:

  • Massivning o‘lchami doimiy, slyssning o‘lchami dinamik.
  • Massiv funksiyaga uzatilganda nusxa olinadi, slyss esa asosiy massivga havola sifatida uzatiladi.
  • Slyssni kengaytirish mumkin (append), massiv esa mumkin emas.

Misol:

var arr [3]int = [3]int{1, 2, 3} // doimiy o‘lchamli massiv

slice := arr[0:2] // massivning birinchi ikki elementiga havola qiluvchi slyss

slice = append(slice, 4) // slyss kengayadi, ehtimol yangi asosiy massiv yaratiladi

Shu tarzda, slysslar dinamik to‘plamlar bilan ishlash uchun qulay, massivlar esa doimiy ma’lumotlar to‘plamlari uchun mos keladi.