Sobes.tech
Junior — Middle

რა განსხვავებაა სიგრძის და მოცულობის პარამეტრებს შორის პროგრამირებაში?

sobes.tech AI

პასუხი AI-სგან

Go dilində 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.

Kapacitet (capacity) isə, massiv və ya dilim (slice) əlavə yaddaş ayırmadan tuta biləcəyi elementlərin sayıdır. Massivlər üçün, kapacitet uzunluğa bərabərdir, çünki onlar sabitdir. Dilimlər üçün isə, kapacitet 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ə kapacitet 5

slice := arr[1:3]             // dilimin uzunluğu 2 (indeks 1 və 2 olan elementlər)
// dilimin kapaciteti 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ə kapacitet isə yaddaşın yenidən bölüşdürülməsindən asılı olmayaraq maksimal ölçüdür.