[Go] golang的range循環遍歷通道
阿新 • • 發佈:2019-02-23
圖片 ann func 發送 一秒 make 無限循環 fmt imp
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循環遍歷通道