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

  1. Dichiarazione con var — crea una slice nil, che non punta a nessun array e ha lunghezza e capacità 0.
var s []int // slice nil
  1. 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
  1. Assegnazione tramite indici — possibile solo se la slice è già inizializzata e ha una lunghezza sufficiente.

  2. 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.