Sobes.tech
Junior — Middle

Jak lze ukončit čtení dat z kanálu v programování?

sobes.tech AI

Odpověď od AI

V jazyce Go se k ukončení čtení z kanálu obvykle používá uzavření kanálu pomocí funkce close(). Když je kanál uzavřen, pokus o jeho čtení vrací nulovou hodnotu a false ve druhém parametru, což umožňuje detekci konce dat.

Příklad:

ch := make(chan int)
go func() {
    for i := 0; i < 5; i++ {
        ch <- i
    }
    close(ch) // signalizujeme, že dat už není
}()

for val := range ch {
    fmt.Println(val) // čte do uzavření kanálu
}

V tomto příkladu se smyčka for val := range ch automaticky ukončí, když je kanál uzavřen a všechna data přečtena.