Sobes.tech
Senior

Ce este un slice și în ce se deosebește de un array?

sobes.tech AI

Răspuns de la AI

În Go, un array este o structură de dimensiune fixă care conține elemente de același tip. Dimensiunea array-ului este stabilită la declarare și nu poate fi modificată în timpul execuției programului.

Slice-ul este o porțiune dinamică și ajustabilă a array-ului. Este o structură care conține un pointer către array, lungimea și capacitatea. Slices permit lucrul cu submulțimi ale array-ului și se extind automat după nevoie.

Diferențele principale:

  • Dimensiune: array-ul are o dimensiune fixă, slice-ul este dinamic.
  • Transmitere: array-urile sunt transmise prin valoare (copiate), slices prin referință (pointer către array).
  • Flexibilitate: slice-ul poate fi extins folosind funcția append, array-ul nu.

Exemplu:

var arr [3]int = [3]int{1, 2, 3} // array de dimensiune fixă

var s []int = arr[0:2] // slice care face referire la o parte a array-ului

s = append(s, 4) // slice-ul se extinde, și dacă este necesar, se creează un nou array