介绍
在这个挑战中,你将编写一个 Go 程序,通过构建一个在协程(goroutines)之间传输整数的简单数据处理流水线,来展示通道(channels)的强大功能。你需要创建一个缓冲通道,将数字 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从通道接收值 - 缓冲通道允许在阻塞之前发送多个值
- 如果需要,可以在写入所有值后关闭通道
总结
总而言之,这个挑战要求你编写一个使用通道构建简单数据处理流水线的 Go 程序。你需要创建一个缓冲通道,将数字 1-5 写入其中,然后按照写入顺序从通道中读取并打印每个数字。



