Sobes.tech
Junior — Middle

Jak lze ukončit práci s kanálem v programu?

sobes.tech AI

Odpověď od AI

V jazyce Go se k ukončení práce s kanálem používá funkce close(). Zavření kanálu signalizuje příjemcům, že již nebudou odesílány žádné nové hodnoty. Po uzavření kanálu pokus o jeho odeslání způsobí panic, ale čtení z uzavřeného kanálu je možné — vrátí nulovou hodnotu a false jako druhý návratový parametr.

Příklad:

ch := make(chan int)
ngo func() {
    ch <- 42
    close(ch) // Uzavření kanálu po odeslání
}()

for val := range ch {
    fmt.Println(val) // Vytiskne 42
}

Pro ukončení práce s kanálem je třeba zavolat close(channel).