Sobes.tech
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.