Sobes.tech
Junior — Middle

Cum se poate încheia citirea datelor dintr-un canal în programare?

sobes.tech AI

Răspuns de la AI

În Go, pentru a încheia citirea dintr-un canal, de obicei se folosește închiderea canalului cu funcția close(). Când canalul este închis, încercarea de a citi din el returnează o valoare zero și false ca al doilea parametru, ceea ce permite detectarea sfârșitului datelor.

Exemplu:

ch := make(chan int)
go func() {
    for i := 0; i < 5; i++ {
        ch <- i
    }
    close(ch) // semnalăm că nu mai sunt date
}()

for val := range ch {
    fmt.Println(val) // citește până când canalul este închis
}

În acest exemplu, bucla for val := range ch se va încheia automat când canalul va fi închis și toate datele vor fi citite.