1:chanel 有close的情况下,可以使用for range来接收

// 发送方
func send(a ...int) <-chan int {
    out := make(chan int)
    go func(){
        for _, v:= range a{
            out <- v
        }
        close(out) // 上面for结束,这里是需要关闭的
    }()
    return out
}

// 接收方:通常想到的方式
func recv1(){
    r := send(2,6,5,7,9,5)
    for{
        // 通过for和if来判断是否chan被close
        if num, ok := <- r; ok{
            fmt.Println(num)
        }else{
            break
        }
    }
}

// 接收方:简单方式
func recv2(){
    r := send(2,6,5,7,9,5)
    // 直接通过for range实现
    for v:= range r{
        fmt.Println(v)
    }
}