Junior — Middle
Cum se realizează rezervarea memoriei pentru un slice în limbajul de programare?
sobes.tech AI
Răspuns de la AI
În limbajul Go, un slice este o structură care conține un pointer către un array, o lungime și o capacitate. Când se creează un slice, memoria pentru elemente este rezervată în array-ul către care indică.
Când se creează un slice folosind funcția make, de exemplu make([]int, length, capacity), se alocă un array cu capacitatea specificată. Dacă la adăugarea elementelor capacitatea este depășită, Go alocă automat un nou array mai mare, copiază datele și actualizează pointerul slice-ului.
Exemplu:
s := make([]int, 0, 5) // slice cu lungimea 0 și capacitatea 5
s = append(s, 1, 2, 3) // adăugăm elemente
Astfel, rezervarea memoriei se face în avans pentru capacitatea specificată, ceea ce crește eficiența la adăugarea elementelor.