Construir una simple tubería de datos con canales

GolangGolangBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este desafío, crearás un programa en Go que demuestre el poder de los canales (channels) construyendo una simple tubería de procesamiento de datos (data processing pipeline) que transfiera enteros entre goroutines. Necesitarás crear un canal con búfer (buffered channel), escribir los números del 1 al 5 en el canal y luego leer e imprimir cada número del canal en el orden en que se escribieron.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/ConcurrencyGroup(["Concurrency"]) go/ConcurrencyGroup -.-> go/goroutines("Goroutines") go/ConcurrencyGroup -.-> go/channels("Channels") go/ConcurrencyGroup -.-> go/select("Select") subgraph Lab Skills go/goroutines -.-> lab-437199{{"Construir una simple tubería de datos con canales"}} go/channels -.-> lab-437199{{"Construir una simple tubería de datos con canales"}} go/select -.-> lab-437199{{"Construir una simple tubería de datos con canales"}} end

Construir una simple tubería de datos con canales

En este desafío, crearás un programa en Go que demuestre el poder de los canales (channels) construyendo una simple tubería de procesamiento de datos (data processing pipeline) que transfiera enteros entre goroutines.

Tareas

  • Crear un canal con búfer (buffered channel) de enteros con una capacidad de 5.
  • Escribir los números 1, 2, 3, 4 y 5 en el canal.
  • Leer e imprimir cada número del canal en el orden en que se escribieron.

Requisitos

  • Utilizar el archivo ~/project/data_pipeline.go.
  • Crear un canal con búfer utilizando make(chan int, 5).
  • Utilizar el operador de envío de canal <- para escribir números en el canal.
  • Utilizar el operador de recepción de canal <- para leer números del canal.
  • Imprimir cada número utilizando fmt.Println().
  • Asegurarse de que todos los números se escriban y lean completamente.

Ejemplos

Ejecutar el programa:

go run data_pipeline.go

Salida esperada:

1
2
3
4
5

Pistas

  • Recuerda utilizar ch <- value para enviar valores al canal.
  • Utiliza 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 es necesario.
✨ Revisar Solución y Practicar

Resumen

En resumen, este desafío te requiere crear un programa en Go que utilice canales (channels) para construir una simple tubería de procesamiento de datos (data processing pipeline). Necesitarás crear un canal con búfer (buffered channel), escribir los números del 1 al 5 en el canal y luego leer e imprimir cada número del canal en el orden en que se escribieron.