Sobes.tech
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.