我不清楚为什么如果我删除in ,则 in 中的 print 语句func a1将不会打印任何内容。我认为在我们将某些内容发送到结果之前,应该执行打印语句,并且不应对此产生任何影响。<-resultfunc a2<-result
func a2(){
x := 3
result := make(chan int, 10)
input := make(chan int, 10)
go a1(x, input, result)
input <- 4
<-result
}
func a1(x int, input <-chan int, result chan<- int){
y := <-input
fmt.Println("hello", y)
result <- x
}
但是,然后我尝试了以下代码:hello无论我<-result是否有,它都会打印。
func a2(){
x := 3
result := make(chan int, 10)
go a1(x, result)
<-result
}
func a1(x int, result chan<- int){
fmt.Println("hello")
result <- x
}
能否详细解释一下,以便初学者能够理解?看起来input <-chan int这个输入通道正在做一些导致差异的事情。
一只名叫tom的猫
相关分类