Sobes.tech
Junior — Middle

Qual é o comportamento esperado se tentar fechar um canal que já foi fechado anteriormente?

sobes.tech IA

Resposta da IA

No Go, tentar fechar um canal já fechado leva a um pânico (panic).

O canal só pode ser fechado uma vez, para sinalizar que não serão enviados mais valores.

Se chamar close(ch) repetidamente para o mesmo canal, o programa terminará abruptamente com um erro.

Exemplo:

ch := make(chan int)
close(ch)       // correto
close(ch)       // panic: close of closed channel

Por isso, é importante garantir que o canal seja fechado apenas uma vez.