Sobes.tech
Junior — Middle

Dasturlashda massivning uzunligi va sig'imi parametrlarining farqi nima?

sobes.tech AI

AIdan javob

Go tilida massivlarning o‘lchami ularni yaratishda belgilangan va o‘zgartirilmaydigan doimiy o‘lchamga ega. Massivning uzunligi (length) — bu uning ichidagi elementlar soni, va u doimiy.

Kapasitetsiya (capacity) — bu massiv yoki bo‘lak (slice) qo‘shimcha xotira ajratmasdan qabul qilishi mumkin bo‘lgan elementlar soni. Massivlar uchun, kapasitetsiya uzunlik bilan teng, chunki ular doimiy. Bo‘laklar uchun, kapasitetsiya uzunlikdan katta bo‘lishi mumkin, chunki bo‘laklar dinamik tuzilmalar bo‘lib, kengaytirilishi mumkin.

Misol:

arr := [5]int{1, 2, 3, 4, 5} // uzunlik va kapasitetsiya 5

slice := arr[1:3]             // bo‘lakning uzunligi 2 (indekslar 1 va 2)
// bo‘lakning kapasitetsiyasi 4 (1-indeksdan massiv oxirigacha)

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

Shunday qilib, uzunlik — bu joriy o‘lcham (elementlar soni), va kapasitetsiya — xotira qayta taqsimlanmasdan maksimal o‘lchamdir.