/*
go遍历通道
我们知道range函数可以遍历数组 切片 字典 这里我们可以使用range函数
来遍历通道以接收通道数据
*/
package main
import (
"fmt"
)
func main() {
//遍历queue通道里面的两个数据
/*
知识点:
make()
chan string
make(chan string, 2)
构建管道
close(queue)
关闭以后就不能往管道里写了
*/
queue := make(chan string, 2)
queue <- "one"
queue <- "two"
close(queue)
/*
range函数遍历每个从通道接收的数据
因为queue在发送完两个数据之后就关闭了通道
所以这里我们range函数在接收到两个数据之后就结束了
如果上面的queue通道不关闭 那么range函数就不会结束 从而在接收第三个数据的时候
就阻塞了
*/
for elem := range queue {
fmt.Println(elem)
}
/*
这个例子同时说明了 即使关闭了一个非空通道 我们任然可以从通道里面接收到值
*/
}