golang for range channel

func main() {

    require:=make(chan int,5)

    for i:=0;i<5;i++{
        require<-i
    }
    
    close(require)
    
    //设置定时器控制读取速率
    ti:=time.Tick(time.Duration(1)*time.Second)

    //直接range只会读取值,缓冲区无数据会读取默认零值,chan关闭,则退出range
    for i:=range require{
        <-ti
        fmt.Printf("i: %d time: %v\n",i,time.Now())
    }

}

简单的demo,具体的channel原理可参考其他博客。

posted @ 2021-01-05 09:59  海拉尔  阅读(1079)  评论(0编辑  收藏  举报