Junior — Middle
Come distinguere i metodi di creazione di slice in Go usando var, make e assegnazioni per indice o tramite append?
sobes.tech AI
Risposta dell'AI
In Go, le slice possono essere create in diversi modi, che differiscono per l'inizializzazione e l'allocazione della memoria:
- Dichiarazione con
var— crea una slice nil, che non punta a nessun array e ha lunghezza e capacità 0.
var s []int // slice nil
- Creazione di una slice tramite
make— alloca un array di lunghezza e capacità specificate, e restituisce una slice che punta a questo array.
s := make([]int, 5) // slice di lunghezza 5, riempita di zeri
-
Assegnazione tramite indici — possibile solo se la slice è già inizializzata e ha una lunghezza sufficiente.
-
Aggiunta di elementi con
append— aggiunge elementi alla slice, e se necessario, aumenta la capacità e alloca un nuovo array.
s = append(s, 10) // aggiunge l'elemento 10 alla slice
In questo modo, var crea una slice nil vuota, make una slice con memoria allocata, l'assegnazione tramite indici richiede una lunghezza esistente, e append espande la slice dinamicamente.