[Go] golang的range循环遍历通道

range循环会无限在channels上面迭代

package main

import (
"fmt"
"time"
) func main() { //创建一个通道
ch := make(chan int)
//开启一个goroutine
go func() {
//无限循环
for {
//往通道里发送数据
ch <- 1
//睡眠一秒
time.Sleep(time.Second)
}
}()
//无限循环从通道中读取数据
for i := range ch {
fmt.Println(i)
} }

和下面的无限读取是等价的

package main

import (
"fmt"
"time"
) func main() { //创建一个通道
ch := make(chan int)
//开启一个goroutine
go func() {
//无限循环
for {
//往通道里发送数据
ch <- 1
//睡眠一秒
time.Sleep(time.Second)
}
}()
//无限循环从通道中读取数据
for {
i, ok := <-ch
if !ok {
break
}
fmt.Println(i)
}
}

[Go] golang的range循环遍历通道

  

  

上一篇:Android他们控制的定义(一)


下一篇:No module named yum错误的解决办法