Sobes.tech
Junior — Middle

Hoe kun je het lezen van gegevens uit een kanaal in programmeren beëindigen?

sobes.tech AI

Antwoord van AI

In Go wordt het lezen uit een kanaal meestal afgesloten door het kanaal te sluiten met de functie close(). Wanneer het kanaal gesloten is, geeft een poging om eruit te lezen een nulwaarde en false als tweede waarde, wat het einde van de gegevens aangeeft.

Voorbeeld:

ch := make(chan int)
go func() {
    for i := 0; i < 5; i++ {
        ch <- i
    }
    close(ch) // signaleert dat er geen gegevens meer zijn
}()

for val := range ch {
    fmt.Println(val) // leest tot het kanaal gesloten is
}

In dit voorbeeld stopt de for val := range ch-lus automatisch wanneer het kanaal gesloten is en alle gegevens gelezen zijn.