我正在寻找启动未知数量的 goroutines。在此示例中添加到number频道。然后在messages频道滚动时从频道中读取消息。当我希望在此代码中看到所有 100 条消息时,为什么我只看到一条消息?如何查看添加的所有号码的消息?package mainimport ( "fmt")func Run(numbers chan int, messages chan string) { stuff := <-numbers messages <- fmt.Sprintf("Ran %d", stuff)}func main() { var numbers = make(chan int) var messages = make(chan string) go Run(numbers, messages) for i := 0; i < 100; i++ { go func(i int) { numbers <-i }(i) } msg := <-messages fmt.Println(msg)}
1 回答

哈士奇WWW
TA贡献1799条经验 获得超6个赞
因为Run从 读取一条消息numbers,向 写入一条消息messages,然后终止。试试这个:
func Run(numbers chan int, messages chan string) {
for stuff := range numbers {
messages <- fmt.Sprintf("Ran %d", stuff)
}
}
这将一直运行到numbers关闭。
- 1 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消