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.