Junior — Middle
È possibile eseguire un'operazione di lettura dei dati da una slice che non è stata inizializzata in precedenza?
sobes.tech AI
Risposta dell'AI
In Go, gli slice sono strutture che contengono un puntatore a un array, una lunghezza e una capacità. Se uno slice non è stato inizializzato (cioè, è uguale a nil), tentare di leggerlo provocherà un panic.
Ad esempio:
var s []int // slice nil
fmt.Println(s[0]) // panic: errore di runtime: indice fuori dal intervallo
Per leggere in modo sicuro da uno slice, deve essere inizializzato, ad esempio usando make o assegnandogli un array esistente:
s := make([]int, 3)
fmt.Println(s[0]) // 0, sicuro
Pertanto, non è possibile leggere da uno slice non inizializzato — ciò causerà un errore di runtime.