Construire un pipeline de données simple avec les canaux

GolangBeginner
Pratiquer maintenant

Introduction

Dans ce défi, vous allez concevoir un programme en Go illustrant la puissance des canaux (channels) en construisant un pipeline de traitement de données rudimentaire qui transfère des entiers entre goroutines. Votre mission consiste à créer un canal tamponné, à y injecter les nombres de 1 à 5, puis à lire et afficher chaque nombre depuis le canal dans leur ordre d'insertion.

Construire un pipeline de données simple avec les canaux

Dans ce défi, vous allez créer un programme Go qui démontre l'efficacité des canaux en mettant en place un pipeline de données simple transférant des entiers.

Tâches

  • Créer un canal tamponné (buffered channel) d'entiers avec une capacité de 5.
  • Écrire les nombres 1, 2, 3, 4 et 5 dans le canal.
  • Lire et afficher chaque nombre du canal dans l'ordre où ils ont été écrits.

Exigences

  • Utilisez le fichier ~/project/data_pipeline.go.
  • Créez un canal tamponné en utilisant make(chan int, 5).
  • Utilisez l'opérateur d'envoi <- pour écrire les nombres dans le canal.
  • Utilisez l'opérateur de réception <- pour lire les nombres depuis le canal.
  • Affichez chaque nombre à l'aide de fmt.Println().
  • Assurez-vous que tous les nombres sont intégralement écrits et lus.

Exemples

Exécution du programme :

go run data_pipeline.go

Sortie attendue :

1
2
3
4
5

Conseils

  • N'oubliez pas d'utiliser ch <- value pour envoyer des valeurs vers le canal.
  • Utilisez value := <-ch pour recevoir des valeurs du canal.
  • Les canaux tamponnés permettent d'envoyer plusieurs valeurs avant de devenir bloquants.
  • Fermez le canal après avoir écrit toutes les valeurs si nécessaire.
✨ Vérifier la solution et pratiquer

Résumé

En résumé, ce défi vous a demandé de concevoir un programme Go exploitant les canaux pour bâtir un pipeline de traitement de données élémentaire. Vous avez appris à initialiser un canal tamponné, à y stocker une série de nombres et à les extraire pour un affichage ordonné.