Junior — Middle
Ako rozlíšiť spôsoby vytvárania rezov v Go pomocou var, make a priradenia podľa indexov alebo cez append?
sobes.tech AI
Odpoveď od AI
V jazyku Go je možné vytvárať rezy (slices) rôznymi spôsobmi, ktoré sa líšia inicializáciou a prideľovaním pamäte:
- Deklarácia pomocou
var— vytvára nil-rez, ktorý neukazuje na žiadny poľom a má dĺžku a kapacitu 0.
var s []int // nil-rez
- Vytvorenie rezu pomocou
make— prideľuje pole s určenou dĺžkou a kapacitou a vracia rez, ktorý na toto pole ukazuje.
s := make([]int, 5) // rez s dĺžkou 5, naplnený nulami
-
Priradenie pomocou indexov — je možné iba ak je rez už inicializovaný a má dostatočnú dĺžku.
-
Pridanie prvkov pomocou
append— pridáva prvky do rezu, a ak je to potrebné, zväčšuje kapacitu a prideľuje nový poľom.
s = append(s, 10) // pridá prvok 10 do rezu
Takto var vytvára prázdny nil-rez, make — rez s pridelenou pamäťou, priradenie pomocou indexov vyžaduje existujúcu dĺžku a append dynamicky rozširuje rez.