Junior — Middle
Cosa succede se si tenta di leggere i dati da un canale che non è ancora stato inizializzato?
sobes.tech AI
Risposta dell'AI
Se si tenta di leggere dati da un canale in Go che non è stato inizializzato (cioè, è nil), l'operazione di lettura si bloccherà per sempre. Questo farà sì che la goroutine che tenta di leggere da quel canale si blocchi, poiché il canale non esiste e non può trasmettere dati.
Esempio:
var ch chan int // ch è nil
func main() {
fmt.Println(<-ch) // si blocca per sempre
}
Per evitare ciò, il canale deve essere inizializzato con make, ad esempio: ch := make(chan int).