Junior — Middle
Como pode terminar o trabalho com um canal no programa?
sobes.tech IA
Resposta da IA
Em Go, para terminar o trabalho com um canal, usa-se a função close(). Fechar um canal sinaliza aos receptores que não serão enviados mais valores novos. Após fechar o canal, tentar enviá-lo causará um pânico, mas é possível ler de um canal fechado — ele retornará um valor zero e false na segunda variável de retorno.
Exemplo:
ch := make(chan int)
ngo func() {
ch <- 42
close(ch) // Fecha o canal após enviar
}()
for val := range ch {
fmt.Println(val) // Vai imprimir 42
}
Assim, para finalizar o trabalho com um canal, deve-se chamar close(channel).