Sobes.tech
Junior — Middle

Ako ukončiť prácu s kanálom v programe?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa na ukončenie práce s kanálom používa funkcia close(). Zatvorenie kanála signalizuje prijímateľom, že už nebudú odoslané žiadne nové hodnoty. Po zatvorení kanála pokus o jeho odoslanie spôsobí paniku, ale čítanie zo zatvoreného kanála je možné — vráti nulovú hodnotu a false ako druhý návratový parameter.

Príklad:

ch := make(chan int)
ngo func() {
    ch <- 42
    close(ch) // Zatvárame kanál po odoslaní
}()

for val := range ch {
    fmt.Println(val) // Vytlačí 42
}

Pre ukončenie práce s kanálom je potrebné zavolať close(channel).