golang遍历通道

/*
    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)
    }

    /*
      这个例子同时说明了 即使关闭了一个非空通道 我们任然可以从通道里面接收到值
    */
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值