ch := make(chan int)
// fmt.Println(ch)
ch <- 1
// 输出channel
go func() {
fmt.Println(<-ch)
}()
这是因为ch<- 1 这个操作,是阻塞操作,就是说 遇到了 a<-1 代码就不走了,什么时候代码往下走?必须等到ch里面的消息被读出去才会继续走
可以简单改为:
ch := make(chan int) // fmt.Println(ch) go func() { ch <- 1 }() // 输出channel go func() { fmt.Println(<-ch) }() time.Sleep(time.Second*2)