Junior — Middle
Hogyan történik a memóriafoglalás a szelethez a programozási nyelvben?
sobes.tech MI
Válasz az MI-től
Go nyelven a szelet egy olyan szerkezet, amely egy mutatót tartalmaz egy tömbre, egy hosszúságot és egy kapacitást. Amikor egy szeletet hozunk létre, a memória a benne lévő elemek számára a mutatott tömbben kerül lefoglalásra.
A make függvény segítségével, például make([]int, length, capacity) esetén, egy adott kapacitású tömb kerül lefoglalásra. Ha az elemek hozzáadásakor a kapacitás túllépésre kerül, a Go automatikusan egy nagyobb méretű új tömböt foglal le, másolja az adatokat, és frissíti a szelet mutatóját.
Példa:
s := make([]int, 0, 5) // szelet, melynek hossza 0 és kapacitása 5
s = append(s, 1, 2, 3) // elemek hozzáadása
Így a memória előre lefoglalásra kerül a megadott kapacitásra, ami növeli a hatékonyságot az elemek hozzáadásakor.