Sobes.tech
Senior

Čo je to slice a ako sa líši od poľa?

sobes.tech AI

Odpoveď od AI

V jazyku Go je pole (array) štruktúra s pevnou veľkosťou, ktorá obsahuje prvky rovnakého typu. Veľkosť poľa sa stanoví pri deklarácii a nemôže sa meniť počas behu programu.

Slice je dynamická, meniaca sa časť poľa. Je to štruktúra, ktorá obsahuje ukazovateľ na pole, dĺžku a kapacitu. Slices umožňujú pracovať s podmnožinami poľa a automaticky sa rozširujú podľa potreby.

Hlavné rozdiely:

  • Veľkosť: pole má pevne stanovenú veľkosť, slice je dynamický.
  • Prenos: polia sa prenášajú hodnotou (kopírovaním), slices odkazom (ukazovateľom na pole).
  • Flexibilita: slice možno rozšíriť pomocou funkcie append, pole nie.

Príklad:

var arr [3]int = [3]int{1, 2, 3} // pevná veľkosť poľa

var s []int = arr[0:2] // slice odkazujúci na časť poľa

s = append(s, 4) // slice sa rozšíri, ak je to potrebné, vytvorí sa nové pole