Sobes.tech
Junior — Middle

Каква е разликата между параметрите за дължина и капацитет на масив в програмирането?

sobes.tech AI

Отговор от AI

В Go масивите имат фиксирана дължина, която се задава при създаването им и не може да бъде променяна. Параметърът дължина (length) на масива е броят на елементите, които съдържа, и е фиксиран.

Капацитетът (capacity) е броят на елементите, които масив или срез (slice) може да съдържа без да се заделя допълнителна памет. За масивите капацитетът е равен на дължината, тъй като са фиксирани. За срезовете капацитетът може да бъде по-голям от дължината, тъй като те са динамични структури, които могат да се разширяват.

Пример:

arr := [5]int{1, 2, 3, 4, 5} // дължина и капацитет 5

slice := arr[1:3]             // дължина на среза 2 (елементи с индекси 1 и 2)
// капацитет на среза 4 (от индекс 1 до края на масива)

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

Така, дължината е текущият размер (броят на елементите), а капацитетът е максималният размер без преразпределение на паметта.