Junior — Middle
Em que parte do código é necessário fechar o canal?
sobes.tech IA
Resposta da IA
Em Go, o canal deve ser fechado no local onde é criado e onde não se planeja enviar mais dados. Normalmente, isso é feito pelo remetente para sinalizar aos receptores que não haverá mais dados.
Importante:
- Os receptores podem verificar o encerramento do canal ao ler.
- Apenas o remetente deve fechar o canal para evitar pânicos.
Exemplo:
ch := make(chan int)
func() {
defer close(ch) // fecha o canal após enviar todos os dados
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // recebe dados até o canal ser fechado
}