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