Sobes.tech
Senior

Šta je slice i kako se razlikuje od niza?

sobes.tech АИ

Одговор од АИ

U Go jeziku, niz (array) je struktura sa fiksne veličine koja sadrži elemente istog tipa. Veličina niza se određuje prilikom deklaracije i ne može se menjati tokom izvršavanja programa.

Slice je dinamički, promenjivi odsečak niza. To je struktura koja sadrži pokazivač na niz, dužinu i kapacitet. Slices omogućavaju rad sa podskupovima niza i automatski se proširuju po potrebi.

Glavne razlike:

  • Veličina: niz ima fiksnu veličinu, slice je dinamički.
  • Prenos: nizovi se prenose po vrednosti (kopiranjem), slice-ovi po referenci (pokazivač na niz).
  • Fleksibilnost: slice se može proširiti pomoću funkcije append, niz ne.

Primer:

var arr [3]int = [3]int{1, 2, 3} // niz fiksne veličine

var s []int = arr[0:2] // slice koji referiše na deo niza

s = append(s, 4) // slice se proširuje, po potrebi se kreira novi niz