Junior — Middle
Milyen helyzetekben történik automatikus növekedés a dinamik tömb (slice) méretében a programozási nyelvben?
sobes.tech MI
Válasz az MI-től
Go nyelvben a slice egy olyan szerkezet, amely egy mutatót tartalmaz egy tömbre, egy hosszúságot és egy kapacitást. A slice mérete automatikusan növekszik, amikor append függvénnyel elemeket adunk hozzá, és a jelenlegi hossz eléri a kapacitást.
Ebben a pillanatban egy új tömb kerül lefoglalásra, amely általában kétszer akkora, mint az előző, a régi elemek másolódnak az új tömbbe, és a slice mutatója frissül az új tömbre. Ez lehetővé teszi, hogy a slice dinamikusan növekedjen az elemek hozzáadásával.
Példa:
s := make([]int, 0, 2) // hossz 0, kapacitás 2
s = append(s, 1) // hossz 1, kapacitás 2
s = append(s, 2) // hossz 2, kapacitás 2
s = append(s, 3) // hossz 3, a kapacitás megnövekedett, például 4-re
Így a méret automatikusan növekszik, amikor elemeket adunk hozzá, és a hossz eléri a slice kapacitását.