Senior
Čo je to slice a ako sa líši od poľa?
sobes.tech AI
Odpoveď od AI
V jazyku Go je pole (array) štruktúra s pevnou veľkosťou, ktorá obsahuje prvky rovnakého typu. Veľkosť poľa sa stanoví pri deklarácii a nemôže sa meniť počas behu programu.
Slice je dynamická, meniaca sa časť poľa. Je to štruktúra, ktorá obsahuje ukazovateľ na pole, dĺžku a kapacitu. Slices umožňujú pracovať s podmnožinami poľa a automaticky sa rozširujú podľa potreby.
Hlavné rozdiely:
- Veľkosť: pole má pevne stanovenú veľkosť, slice je dynamický.
- Prenos: polia sa prenášajú hodnotou (kopírovaním), slices odkazom (ukazovateľom na pole).
- Flexibilita: slice možno rozšíriť pomocou funkcie
append, pole nie.
Príklad:
var arr [3]int = [3]int{1, 2, 3} // pevná veľkosť poľa
var s []int = arr[0:2] // slice odkazujúci na časť poľa
s = append(s, 4) // slice sa rozšíri, ak je to potrebné, vytvorí sa nové pole