Junior — Middle
Cosa succede alla lunghezza e alla capacità dello slice se si aggiungono 10 elementi quando è inizialmente vuoto?
sobes.tech AI
Risposta dell'AI
Se hai un slice vuoto in Go (lunghezza e capacità uguali a 0), e aggiungi 10 elementi con la funzione append, allora:
- La lunghezza del slice sarà 10 — il numero di elementi che hai aggiunto.
- La capacità del slice aumenterà automaticamente, di solito con un margine, per evitare frequenti riassegnazioni di memoria. La capacità esatta dipende dall'implementazione, ma spesso sarà 16 o più, per contenere nuovi elementi e avere margine per aggiunte future.
Esempio:
var s []int // slice vuoto
s = append(s, make([]int, 10)...) // aggiungi 10 elementi
fmt.Println(len(s)) // 10
fmt.Println(cap(s)) // >=10, di solito 16 o 20
In questo modo, la capacità aumenta dinamicamente per gestire efficientemente la memoria man mano che il slice cresce.