Junior — Middle
Como implementas o trabalho com canais no teu projeto?
sobes.tech IA
Resposta da IA
No meu projeto, trabalhar com canais em Go baseia-se no uso deles para sincronização e troca de dados entre goroutines. Normalmente, crio canais com o tipo de dado necessário, por exemplo, chan int ou chan string, e os uso para transmitir mensagens ou sinais.
Exemplo de uso simples de um canal:
func worker(ch chan int) {
for val := range ch {
fmt.Println("Valor recebido:", val)
}
}
func main() {
ch := make(chan int)
go worker(ch)
ch <- 10
ch <- 20
close(ch) // Fecha o canal para que o worker termine o ciclo
}
Também é importante fechar corretamente os canais para evitar bloqueios, e usar select para trabalhar com múltiplos canais simultaneamente. Em projetos, frequentemente uso canais com buffer para evitar bloqueios no envio durante cargas elevadas.