您好,我有以下简单程序:
我有一个函数,它应该从一个通道中获取3个数字并同时打印它们。每次打印都是在 range 语句内的新 goroutine 中完成的。
但是,当我运行此程序时,而不是预期的输出,我得到.你能帮我找出问题出在哪里,为什么我没有从渠道收到已发送到频道的相同值吗?谢谢。printNums(nums chan int)4, 12, 3212, 12, 32
package main
import ("fmt")
func printNums(nums chan int){
c := make(chan struct{}, 100)
for num := range(nums){
go func(){
fmt.Println(num)
c <- struct{}{}
}()
}
<-c
<-c
<-c
}
func main(){
nums := make(chan int)
go func() {
nums <- 4
nums <- 12
nums <- 32
close(nums)
}()
printNums(nums)
}
婷婷同学_
相关分类