Junior — Middle
Quanti elementi e quale capacità avrà una slice dopo aver aggiunto un elemento, se inizialmente non è stata inizializzata?
sobes.tech AI
Risposta dell'AI
Se una slice in Go non è inizializzata inizialmente (cioè, è uguale a nil), e si aggiunge un elemento usando la funzione append, allora:
- La quantità di elementi (len) dopo l’aggiunta sarà 1.
- La capacità (cap) dipenderà dall’implementazione, ma di solito inizia con una capacità piccola, ad esempio 1 o 2.
Esempio:
var s []int // slice nil
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // di solito >= 1
Pertanto, quando si aggiunge il primo elemento a uno slice nil in Go, viene automaticamente allocata memoria per un nuovo slice con una capacità sufficiente a contenere quell’elemento.