我正在尋找啟動未知數量的 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 關注
- 109 瀏覽
添加回答
舉報
0/150
提交
取消