Sobes.tech
Junior — Middle

Čo sa stane v programe, ak sa pokúsite čítať zo zatvoreného kanála v Go?

sobes.tech AI

Odpoveď od AI

Ak sa pokúsite čítať zo zatvoreného kanála v Go, operácia čítania vráti nulovú hodnotu typu kanála a false v druhom vrátenom výsledku, ak sa používa syntax s dvoma návratovými hodnotami:

v, ok := <-ch

Tu bude ok false, čo znamená, že kanál je zatvorený a viac dát neprichádza.

Ak čítate zo zatvoreného kanála bez kontroly ok, dostanete nulovú hodnotu typu kanála (napríklad 0 pre int).

Dôležité: čítanie zo zatvoreného kanála neblokuje a nespôsobí paniku, ale okamžite vráti nulovú hodnotu a false.