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.