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

  1. 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
  1. 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
  1. Priradenie pomocou indexov — je možné iba ak je rez už inicializovaný a má dostatočnú dĺžku.

  2. 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.