Junior — Middle
Jak odlišit způsoby vytváření řezu v Go pomocí var, make a přiřazení podle indexu nebo přes append?
sobes.tech AI
Odpověď od AI
V jazyce Go lze pole (slices) vytvářet různými způsoby, které se liší inicializací a přidělením paměti:
- Deklarace pomocí
var— vytvoří nil-pole, které neukazuje na žádné pole a má délku a kapacitu 0.
var s []int // nil-pole
- Vytvoření pole pomocí
make— přidělí pole s danou délkou a kapacitou a vrátí pole ukazující na toto pole.
s := make([]int, 5) // pole délky 5, vyplněné nulami
-
Přiřazení přes indexy — je možné pouze pokud je pole již inicializované a má dostatečnou délku.
-
Přidání prvků pomocí
append— přidá prvky do pole, a pokud je potřeba, zvětší kapacitu a přidělí nové pole.
s = append(s, 10) // přidá prvek 10 do pole
Tímto způsobem var vytvoří prázdné nil-pole, make pole s přidělenou pamětí, přiřazení přes indexy vyžaduje existující délku a append dynamicky rozšiřuje pole.