Middle
Кесектин кеңейгенде анын сыйымдылыгы кандай өзгөрөт?
sobes.tech AI
AIден жооп
Go-da, slice — bu arrayga ishorat qiluvchi, uzunligi va sig'imi bo'lgan tuzilma. append yordamida elementlar qo'shilganda, agar slice uzunligi uning hozirgi sig'imiga yetgan bo'lsa, xotira qayta taqsimlanadi: yangi, sig'imi oshirilgan array yaratiladi va ma'lumotlar unga ko'chiriladi.
Sig'imni o'zgartirish qoidalari qat'iy emas, lekin odatda:
- Kichik slice'lar uchun (1024 elementgacha) sig'im ikki barobar oshiriladi.
- Katta slice'lar uchun, o'sish konservativroq bo'ladi (taxminan 25% hozirgi sig'imdan).
Bu, yaddaşning ishlatilishi va taqsimlashlar soni o'rtasida muvozanatni ta'minlaydi.
Misol:
s := make([]int, 0, 2) // uzunligi 0, sig'imi 2
s = append(s, 1) // uzunligi 1, sig'imi 2
s = append(s, 2) // uzunligi 2, sig'imi 2
s = append(s, 3) // uzunligi 3, sig'im oshadi, masalan, 4-ə
Shu tarzda, dilim sig'imi kengaytirganda, u eksponensial ravishda o'sadi, bu esa elementlar qo'shishning samaradorligini oshiradi.