シンプルなチャネル・データパイプラインの構築

GolangBeginner
オンラインで実践に進む

はじめに

このチャレンジでは、ゴルーチン(goroutine)間で整数を転送するシンプルなデータ処理パイプラインを構築することで、Go 言語におけるチャネル(channel)の強力な機能を体験します。バッファ付きチャネルを作成し、1 から 5 までの数値を書き込んだ後、書き込まれた順序で各数値を読み取って出力するプログラムを作成していただきます。

シンプルなチャネル・データパイプラインの構築

このチャレンジでは、ゴルーチン間で整数を転送するシンプルなデータ処理パイプラインを構築し、Go のチャネルの仕組みを理解します。

タスク

  • 容量 5 の整数のバッファ付きチャネルを作成する
  • チャネルに 1, 2, 3, 4, 5 の数値を書き込む
  • チャネルから各数値を書き込まれた順に読み取り、出力する

要件

  • ファイルパス ~/project/data_pipeline.go を使用すること
  • make(chan int, 5) を使用してバッファ付きチャネルを作成すること
  • チャネル送信演算子 <- を使用して数値をチャネルに書き込むこと
  • チャネル受信演算子 <- を使用してチャネルから数値を読み取ること
  • fmt.Println() を使用して各数値を出力すること
  • すべての数値が完全に書き込まれ、読み取られることを確実にすること

実行例

プログラムの実行:

go run data_pipeline.go

期待される出力:

1
2
3
4
5

ヒント

  • チャネルに値を送信するには ch <- value を使用します。
  • チャネルから値を受信するには value := <-ch を使用します。
  • バッファ付きチャネルを使用すると、ブロックされる前に複数の値を送信できます。
  • 必要に応じて、すべての値を書き込んだ後にチャネルをクローズ(close)してください。
✨ 解答を確認して練習

まとめ

このチャレンジでは、チャネルを使用してシンプルなデータ処理パイプラインを構築する Go プログラムを作成しました。バッファ付きチャネルの作成、数値の書き込み、そして書き込まれた順序での読み取りと出力という、並行プログラミングの基礎となる一連の流れを習得しました。