Sobes.tech
Junior — Middle

Cosa succede se si esegue un'operazione di scrittura in un canale vuoto (nil) in Go?

sobes.tech AI

Risposta dell'AI

Se si tenta di scrivere un valore in un canale nil in Go, il programma si bloccherà per sempre (deadlock). Questo accade perché il canale nil non è inizializzato e non può ricevere o inviare valori.

Esempio:

var ch chan int // ch == nil

func main() {
    ch <- 1 // qui il programma si bloccherà
}

Per evitare ciò, il canale deve essere inizializzato con make, ad esempio:

ch := make(chan int)

Solo dopo questo, è possibile scrivere e leggere in modo sicuro dal canale.