Sobes.tech
Junior — Middle

Kā var pabeigt datu lasīšanu no kanāla programmēšanā?

sobes.tech AI

Atbilde no AI

Go valodā, lai pabeigtu lasīšanu no kanāla, parasti tiek izmantots kanāla aizvēršana ar funkciju close(). Kad kanāls ir aizvērts, mēģinājums no tā lasīt atgriež nulles vērtību un false kā otro vērtību, kas ļauj noteikt datu beigas.

Piemērs:

ch := make(chan int)
go func() {
    for i := 0; i < 5; i++ {
        ch <- i
    }
    close(ch) // signāls, ka datu vairs nav
}()

for val := range ch {
    fmt.Println(val) // lasa līdz kanāls ir aizvērts
}

Šajā piemērā for val := range ch cikls automātiski beigsies, kad kanāls tiks aizvērts un visi dati būs nolasīti.