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