Sobes.tech
Junior — Middle

Ce înseamnă proprietatea capacity a unui slice în Go, dacă nu este specificată explicit la crearea sa?

sobes.tech AI

Răspuns de la AI

În Go, un slice este o structură care conține un pointer către un array, o lungime (len) și o capacitate (capacity).

Dacă la crearea unui slice capacitatea nu este specificată explicit, aceasta este setată egal cu lungimea slice-ului. Capacitatea indică câți elemente poate conține slice-ul fără a aloca memorie nouă.

De exemplu:

s := make([]int, 3) // len=3, cap=3

Aici, capacitatea este 3, deoarece nu a fost specificată separat.

Dacă capacitatea este mai mare decât lungimea, slice-ul poate fi extins până la capacitate fără a aloca un nou array.