Sobes.tech
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.