Senior
Go'da massiv və dilim arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, massiv (array) — bu sabit ölçülü strukturdur və ölçüsü elan zamanı müəyyən edilir və dəyişdirilə bilməz. Massivlər elementləri ardıcıl yadda saxlayır və funksiyaya ötürüləndə tam surəti çıxarılır.
Slyss (slice) — bu dinamik, ölçüsü dəyişkən tipdir və ardıcıl massiv seqmentinə istinad edir. Slyss ilk elementə işarə edən göstərici, uzunluğu və tutumu (kapasitesi) ehtiva edir.
Əsas fərqlər:
- Massivin ölçüsü sabitdir, slyssin ölçüsü dinamik.
- Massiv funksiyaya ötürüləndə surət çıxarılır, slyss isə əsas massivə istinadla ötürülür.
- Slyss genişləndirilə bilər (append), massiv isə yox.
Nümunə:
var arr [3]int = [3]int{1, 2, 3} // sabit ölçülü massiv
slice := arr[0:2] // massivdə ilk iki elementə istinad edən slyss
slice = append(slice, 4) // slyss genişlənir, ehtimal ki, yeni əsas massiv yaradılır
Beləliklə, slysslər dinamik kolleksiyalarla işləmək üçün əlverişlidir, massivlər isə sabit məlumat dəstələri üçün uyğundur.