func main() { c := make(chan int) go func() { for i := 0; i < 10; i++ { c <- i fmt.Println("qqqq") } }() for n := 0; n < 5; n++ { fmt.Println("main", <-c) } } 打印结果是什么

func main() { c := make(chan int) go func() { for i := 0; i < 10; i++ { c <- i fmt.Println("qqqq") } }() for n := 0; n < 5; n++ { fmt.Println("main", <-c) } } 打印结果是什么
张家俊
2025年01月31日
|
浏览 129

打印结果可能是:

main 0
qqqq
main 1
qqqq
main 2
qqqq
main 3
qqqq
main 4

这是由于在主函数中循环5次打印从通道 c 中接收的值,而在另一个 goroutine 中向通道 c 中发送了 10 个值,并且每次发送后都会打印 “qqqq”。因此,前5次接收到的值是 0 到 4,每次接收后都会打印 “qqqq”。

我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;