Sobes.tech
Junior — Middle

Programlamada dizisi uzunluk ve kapasite parametreleri arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde dizilerin sabit bir uzunluğu vardır ve bu, oluşturulurken belirlenir ve değiştirilemez. Dizinin uzunluğu (length), içindeki öğe sayısıdır ve sabittir.

Kapasite (capacity), bir dizi veya dilim (slice) ek bellek ayırmadan kaç öğe tutabileceğini gösterir. Dizilerde kapasite, uzunlukla aynıdır çünkü sabittir. Dilimlerde ise kapasite, uzunluktan büyük olabilir çünkü dinamik yapılar olup genişletilebilirler.

Örnek:

arr := [5]int{1, 2, 3, 4, 5} // uzunluk ve kapasite 5

slice := arr[1:3]             // dilimin uzunluğu 2 (indeksler 1 ve 2)
// dilimin kapasitesi 4 (1. indeksden dizinin sonuna kadar)

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

Bu nedenle, uzunluk şu anki boyut (öğe sayısı) iken, kapasite, bellek yeniden tahsis edilmeden alınabilecek maksimum boyuttur.