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.