前言
众所周知,channel在使用之前需要通过make去进行初始化。否则会是一个nil的channel。在阅读源码中碰到了很多对其的处理步骤,所以学习了一下这边。
正常使用会遇到的错误情况
func main() {
var c1 chan int
var wg sync.WaitGroup
wg.Add(2)
go func() {
c1 <- 1
wg.Done()
}()
go func() {
tmp := <-c1
fmt.Println(tmp)
wg.Done()
}()
wg.Wait