Construir um Pipeline de Dados Simples com Canais

GolangBeginner
Pratique Agora

Introdução

Neste desafio, você criará um programa em Go que demonstra o poder dos canais ao construir um pipeline simples de processamento de dados que transfere números inteiros entre goroutines. Você precisará criar um canal com buffer, gravar os números de 1 a 5 no canal e, em seguida, ler e imprimir cada número do canal na ordem em que foram gravados.

Este é um Desafio, que difere de um Laboratório Guiado pois você deve tentar concluir a tarefa de forma independente, em vez de seguir passos de aprendizado. Desafios costumam ser um pouco mais complexos. Se encontrar dificuldades, você pode discutir com o Labby ou verificar a solução. Dados históricos mostram que este é um desafio de nível iniciante com uma taxa de aprovação de 100%. Ele recebeu uma taxa de avaliação positiva de 100% dos alunos.

Construir um Pipeline de Dados Simples com Canais

Neste desafio, você desenvolverá um programa em Go para explorar a funcionalidade dos canais, criando um fluxo de processamento de dados que movimenta inteiros entre diferentes partes do código.

Tarefas

  • Criar um canal de inteiros com buffer e capacidade para 5 elementos
  • Gravar os números 1, 2, 3, 4 e 5 dentro do canal
  • Ler e imprimir cada número do canal respeitando a ordem de gravação

Requisitos

  • Utilize o arquivo ~/project/data_pipeline.go
  • Crie o canal com buffer usando a instrução make(chan int, 5)
  • Utilize o operador de envio de canal <- para gravar os números
  • Utilize o operador de recebimento de canal <- para ler os números
  • Imprima cada número utilizando fmt.Println()
  • Certifique-se de que todos os números sejam gravados e lidos completamente

Exemplos

Execute o programa:

go run data_pipeline.go

Saída esperada:

1
2
3
4
5

Dicas

  • Lembre-se de usar ch <- value para enviar valores ao canal
  • Use value := <-ch para receber valores do canal
  • Canais com buffer permitem o envio de múltiplos valores antes de causar um bloqueio na execução
  • Se necessário, feche o canal após gravar todos os valores
✨ Verificar Solução e Praticar

Resumo

Em resumo, este desafio exigiu a criação de um programa em Go que utiliza canais para construir um pipeline simples de processamento de dados. Você aprendeu a instanciar um canal com buffer, enviar os números de 1 a 5 para ele e, posteriormente, realizar a leitura e impressão desses valores mantendo a ordem original.