Junior — Middle
Ce se întâmplă într-un program dacă încerci să citești dintr-un canal închis în Go?
sobes.tech AI
Răspuns de la AI
Dacă încerci să citești dintr-un canal închis în Go, operațiunea de citire va returna o valoare zero a tipului canalului și false în al doilea rezultat returnat, dacă se folosește sintaxa cu două valori de returnare:
v, ok := <-ch
Aici, ok va fi false, ceea ce înseamnă că canalul este închis și nu vor mai fi date.
Dacă citești dintr-un canal închis fără a verifica ok, vei primi o valoare zero a tipului canalului (de exemplu, 0 pentru int).
Important: citirea dintr-un canal închis nu blochează și nu provoacă panică, ci returnează imediat o valoare zero și false.