Junior — Middle
Ce număr de elemente și ce capacitate va avea un slice după adăugarea unui element, dacă inițial nu a fost inițializat?
sobes.tech AI
Răspuns de la AI
Dacă o slice în Go nu este inițializată inițial (adică, este egală cu nil), și adăugați un element folosind funcția append, atunci:
- Numărul de elemente (len) după adăugare va fi 1.
- Capacitatea (cap) va depinde de implementare, dar de obicei începe cu o capacitate mică, de exemplu 1 sau 2.
Exemplu:
var s []int // slice nil
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // de obicei >= 1
Astfel, la adăugarea primului element într-un slice nil în Go, Go alocă automat memorie pentru un nou slice cu o capacitate suficientă pentru a stoca acel element.