Junior — Middle
Mi történik a szelet hosszával és kapacitásával, ha hozzáadunk 10 elemet, amikor eredetileg üres?
sobes.tech MI
Válasz az MI-től
Ha van egy üres szelet a Go-ban (hossz és kapacitás 0), és hozzáad 10 elemet az append függvénnyel, akkor:
- A szelet hossza 10 lesz — a hozzáadott elemek száma.
- A szelet kapacitása automatikusan növekedni fog, általában egy tartalékkal, hogy elkerülje a gyakori memória újraelosztásokat. A pontos kapacitás az implementációtól függ, de gyakran 16 vagy több lesz, hogy befogadja az új elemeket és tartalékot biztosítson a jövőbeni hozzáadásokhoz.
Példa:
var s []int // üres szelet
s = append(s, make([]int, 10)...) // 10 elem hozzáadása
fmt.Println(len(s)) // 10
fmt.Println(cap(s)) // >=10, általában 16 vagy 20
Így a kapacitás dinamikusan növekszik, hogy hatékonyan kezelje a memóriát a szelet növekedésével.