Sobes.tech
Junior — Middle

Cosa succede se si crea una slice con un valore nullo e quali operazioni sono consentite con essa?

sobes.tech AI

Risposta dell'AI

In Go, una slice con valore nullo è una slice nil. Non punta a nessun array e ha lunghezza e capacità uguali a zero.

Operazioni consentite con una tale slice:

  • Ottenere lunghezza e capacità (len(slice) == 0, cap(slice) == 0)
  • Iterare sulla slice (il ciclo semplicemente non verrà eseguito)
  • Aggiungere elementi tramite append, che creerà una nuova slice con memoria allocata

Esempio:

var s []int // slice nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // ora s non è nil, contiene un elemento

Non è possibile accedere agli elementi tramite indice, poiché la slice è vuota e ciò causerà un panic.