Junior — Middle
Quali sono le conseguenze dell'utilizzo del metodo append per uno slice dichiarato senza parametri iniziali?
sobes.tech AI
Risposta dell'AI
Se una slice in Go viene dichiarata senza parametri iniziali, ad esempio var s []int, essa è inizialmente uguale a nil e non punta a un array allocato. Quando si utilizza la funzione append, Go assegna automaticamente un nuovo array e aggiunge gli elementi, restituendo una nuova slice con la capacità necessaria.
Ciò significa che append funziona in modo sicuro con slice nil, e puoi scrivere:
var s []int // slice nil
s = append(s, 1, 2, 3) // ora s punta a un nuovo array con gli elementi
Conseguenze:
- Non è necessario inizializzare la slice prima di usare
append. - Alla prima chiamata di
append, viene allocata memoria. - Se la slice è nil, allora
len(s) == 0ecap(s) == 0.
Pertanto, usare append con slice nil è una pratica standard in Go che semplifica il lavoro con collezioni dinamiche.