Sobes.tech
Junior — Middle

¿Cómo implementas el trabajo con canales en tu proyecto?

sobes.tech AI

Respuesta de la IA

En mi proyecto, trabajar con canales en Go se basa en usarlos para sincronizar y intercambiar datos entre goroutines. Normalmente creo canales con el tipo de datos necesario, por ejemplo, chan int o chan string, y los uso para transmitir mensajes o señales.

Ejemplo de uso simple de un canal:

func worker(ch chan int) {
    for val := range ch {
        fmt.Println("Valor recibido:", val)
    }
}

func main() {
    ch := make(chan int)
    go worker(ch)

    ch <- 10
    ch <- 20
    close(ch) // Cerramos el canal para que el worker termine el ciclo
}

También es importante cerrar correctamente los canales para evitar bloqueos, y usar select para trabajar con múltiples canales simultáneamente. En los proyectos, a menudo uso canales con búfer para evitar bloqueos en el envío cuando hay alta carga.