Junior — Middle
Čo sa stane, ak sa pokúsite zatvoriť kanál, ktorý je už zatvorený?
sobes.tech AI
Odpoveď od AI
V jazyku Go spôsobí pokus o zatvorenie už zatvoreného kanála počas behu programu paniku (panic). Je to spôsobené tým, že funkcia close() je určená na zatvorenie kanála iba raz, a opakované zatváranie sa považuje za chybu.
Príklad:
ch := make(chan int)
close(ch) // správne zatvorenie
close(ch) // spôsobí panic: close of closed channel
Aby ste predišli panike, musíte zabezpečiť, že kanál bude zatvorený iba raz, napríklad pomocou dodatočej logiky alebo synchronizácie.