Senior
Co je to slice a čím se liší od pole?
sobes.tech AI
Odpověď od AI
V jazyce Go je pole (array) struktura s pevnou velikostí, která obsahuje prvky stejného typu. Velikost pole je stanovena při deklaraci a nemůže být během běhu programu změněna.
Slice je dynamická, měnitelná část pole. Je to struktura, která obsahuje ukazatel na pole, délku a kapacitu. Slices umožňují pracovat s podmnožinami pole a automaticky se rozšiřují podle potřeby.
Hlavní rozdíly:
- Velikost: pole má pevnou velikost, slice je dynamické.
- Předání: pole se předává hodnotou (kopírováním), slices se předávají odkazem (ukazatelem na pole).
- Flexibilita: slice lze rozšířit pomocí funkce
append, pole nikoliv.
Příklad:
var arr [3]int = [3]int{1, 2, 3} // pevné velikosti pole
var s []int = arr[0:2] // slice odkazující na část pole
s = append(s, 4) // slice se rozšíří, pokud je potřeba, vytvoří se nové pole