Senior
Cos'è uno slice e come si differenzia da un array?
sobes.tech AI
Risposta dell'AI
In Go, un array è una struttura di dimensione fissa che contiene elementi dello stesso tipo. La dimensione dell'array viene impostata durante la dichiarazione e non può essere modificata durante l'esecuzione del programma.
Lo slice è una porzione dinamica e modificabile dell'array. È una struttura che contiene un puntatore all'array, la lunghezza e la capacità. Gli slice permettono di lavorare con sottoinsiemi dell'array e di espandersi automaticamente quando necessario.
Principali differenze:
- Dimensione: l'array ha una dimensione fissa, lo slice è dinamico.
- Passaggio: gli array vengono passati per valore (copiati), gli slice per riferimento (puntatore all'array).
- Flessibilità: lo slice può essere esteso usando la funzione
append, l'array no.
Esempio:
var arr [3]int = [3]int{1, 2, 3} // array di dimensione fissa
var s []int = arr[0:2] // slice che fa riferimento a una parte dell'array
s = append(s, 4) // lo slice si espande, e se necessario, viene creato un nuovo array