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

  1. Deklarace pomocí var — vytvoří nil-pole, které neukazuje na žádné pole a má délku a kapacitu 0.
var s []int // nil-pole
  1. 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
  1. Přiřazení přes indexy — je možné pouze pokud je pole již inicializované a má dostatečnou délku.

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