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.