Sobes.tech
Junior — Middle

Come si può terminare la lettura dei dati da un canale in programmazione?

sobes.tech AI

Risposta dell'AI

In Go, per terminare la lettura da un canale si utilizza generalmente la chiusura del canale tramite la funzione close(). Quando il canale è chiuso, tentare di leggerlo restituisce un valore zero e false come secondo valore, permettendo di rilevare la fine dei dati.

Esempio:

ch := make(chan int)
go func() {
    for i := 0; i < 5; i++ {
        ch <- i
    }
    close(ch) // segnala che non ci sono più dati
}()

for val := range ch {
    fmt.Println(val) // legge fino alla chiusura del canale
}

In questo esempio, il ciclo for val := range ch si terminerà automaticamente quando il canale sarà chiuso e tutti i dati saranno stati letti.