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