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.