Sobes.tech
Junior — Middle

Proqramlaşdırmada massivlərin uzunluğu və tutumu parametrləri arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da massivlərin sabit uzunluğu var və bu, yaradılarkən təyin edilir və dəyişdirilə bilməz. Massivin uzunluğu (length) onun içindəki elementlərin sayıdır və bu, sabitdir.

Kapasitə (capacity) isə, massiv və ya dilim (slice) əlavə yaddaş ayırmadan tuta biləcəyi elementlərin sayıdır. Massivlər üçün, kapasitə uzunluğa bərabərdir, çünki onlar sabitdir. Dilimlər üçün isə, kapasitə uzunluktan böyük ola bilər, çünki dilimlər dinamik strukturlardır və genişləndirilə bilərlər.

Nümunə:

arr := [5]int{1, 2, 3, 4, 5} // uzunluq və kapasitə 5

slice := arr[1:3]             // dilimin uzunluğu 2 (indeks 1 və 2 olan elementlər)
// dilimin kapasitəsi 4 (1-ci indeksdən massiv sonuna qədər)

fmt.Println(len(slice)) // 2
fmt.Println(cap(slice)) // 4

Beləliklə, uzunluq hazırkı ölçüdür (elementlərin sayı), və kapasitə isə yaddaşın yenidən bölüşdürülməsindən asılı olmayaraq maksimal ölçüdür.