Junior — Middle
In quale punto del codice è necessario chiudere il canale?
sobes.tech AI
Risposta dell'AI
In Go, il canale deve essere chiuso nel punto in cui viene creato e dove non si prevede più di inviare dati. Di solito, lo fa il mittente per segnalare ai destinatari che non ci saranno più dati.
Importante:
- I destinatari possono verificare la chiusura del canale durante la lettura.
- Solo il mittente dovrebbe chiudere il canale per evitare panico.
Esempio:
ch := make(chan int)
func() {
defer close(ch) // chiudiamo il canale dopo aver inviato tutti i dati
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // ricevi dati finché il canale non si chiude
}