Sobes.tech
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.