Middle+
Quem deve fechar o canal?
sobes.tech IA
Resposta da IA
Quem criou o canal deve fechá-lo e não pretende mais enviar dados nele. Isso é importante para evitar pânico ao tentar enviar dados para um canal fechado e para que os destinatários possam determinar corretamente o fim do fluxo de dados.
Regras principais:
- O remetente fecha o canal quando não enviará mais valores.
- Os destinatários não devem fechar o canal.
- O fechamento do canal sinaliza aos destinatários que não haverá mais dados.
Exemplo:
func produtor(ch chan<- int) {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch) // Fecha o canal após enviar todos os dados
}
func consumidor(ch <-chan int) {
for val := range ch {
fmt.Println(val)
}
// Quando o canal está fechado, o ciclo termina
}
func main() {
ch := make(chan int)
go produtor(ch)
consumidor(ch)
}