Junior — Middle
Tudod magyarázni, mi az a szelet (slice) a programozásban, és hogyan működik?
sobes.tech MI
Válasz az MI-től
Go-ban a szelet (slice) egy dinamikus, méretében változtatható tömbrészlet. Egy olyan struktúra, amely tartalmazza:
- egy mutatót az array első elemére,
- a hosszát (az elemek számát a szeletben),
- a kapacitását (a maximális elemek számát, amit a szelet anélkül tartalmazhat, hogy újra kellene allokálni).
A szeletek lehetővé teszik, hogy elemek sorozataival dolgozzunk anélkül, hogy adatokat másolnánk.
Példa egy szelet létrehozására és használatára:
arr := [5]int{1, 2, 3, 4, 5}
slice := arr[1:4] // a 1,2,3 indexű elemek szelete
fmt.Println(slice) // [2 3 4]
slice = append(slice, 6) // hozzáadunk egy elemet, szükség esetén új memóriát foglal
fmt.Println(slice) // [2 3 4 6]
A szeletek akkor hasznosak, ha meglévő szeletekből lehet újat létrehozni, méretüket módosítani és függvényeknek átadni anélkül, hogy az egész tömböt másolnánk.