Sobes.tech
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.