Junior — Middle
É permitido obter informações de um canal com modo fechado ativado?
sobes.tech IA
Resposta da IA
Em Go, se um canal estiver fechado, ainda é possível receber dados dele até que o buffer do canal se esvazie. Após ler todos os dados, operações de leitura adicionais de um canal fechado retornam um valor nulo do tipo do canal e uma flag indicando que o canal está fechado.
Ou seja, é permitido receber informações de um canal fechado, mas é necessário verificar o segundo valor retornado para entender se ainda há dados ou se o canal está completamente vazio.
Exemplo:
data, ok := <-ch
if !ok {
// canal fechado e vazio
}
Tentar enviar dados para um canal fechado causará um pânico.