Construir un Pipeline de Datos Simple con Canales

GolangBeginner
Practicar Ahora

Introducción

En este desafío, crearás un programa en Go que demuestra la potencia de los canales mediante la construcción de un pipeline de procesamiento de datos sencillo que transfiere números enteros entre goroutines. Deberás crear un canal con búfer, escribir los números del 1 al 5 en él y, posteriormente, leer e imprimir cada número del canal en el mismo orden en que fueron escritos.

Esto es un Desafío (Challenge), el cual difiere de un Laboratorio Guiado en que debes intentar completar la tarea de forma independiente, en lugar de seguir pasos de aprendizaje estructurados. Los desafíos suelen tener cierta dificultad. Si encuentras obstáculos, puedes debatir con Labby o consultar la solución. Los datos históricos muestran que este es un desafío de nivel principiante con una tasa de aprobación del 100%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los estudiantes.

Construir un Pipeline de Datos Simple con Canales

En este desafío, desarrollarás un programa en Go para poner en práctica el uso de canales creando un flujo de datos básico que transfiera enteros entre procesos concurrentes.

Tareas

  • Crear un canal de enteros con búfer y una capacidad de 5.
  • Escribir los números 1, 2, 3, 4 y 5 dentro del canal.
  • Leer e imprimir cada número del canal respetando el orden de escritura.

Requisitos

  • Utiliza el archivo ~/project/data_pipeline.go.
  • Crea el canal con búfer usando make(chan int, 5).
  • Emplea el operador de envío de canal <- para escribir los números.
  • Emplea el operador de recepción de canal <- para leer los números.
  • Imprime cada número utilizando fmt.Println().
  • Asegúrate de que todos los números se escriban y lean completamente.

Ejemplos

Ejecuta el programa:

go run data_pipeline.go

Salida esperada:

1
2
3
4
5

Consejos

  • Recuerda usar ch <- value para enviar valores al canal.
  • Usa value := <-ch para recibir valores del canal.
  • Los canales con búfer permiten enviar múltiples valores antes de bloquearse.
  • Cierra el canal después de escribir todos los valores si fuera necesario.
✨ Revisar Solución y Practicar

Resumen

En conclusión, este desafío te ha permitido practicar la creación de un programa en Go que utiliza canales para construir un pipeline de procesamiento de datos básico. Has aprendido a inicializar un canal con búfer, escribir una secuencia de números en él y recuperarlos para su impresión manteniendo el orden original.