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.