Go通道范围实例

前面的例子中,我们已经看到了forrange语句如何为基本数据结构提供迭代。还可以使用此语法对从通道接收的值进行迭代。

此范围在从队列接收到的每个元素上进行迭代。因为关闭了上面的通道,迭代在接收到2个元素后终止。

这个示例还示出可以关闭非空信道,但仍然接收剩余值。

所有的示例代码,都放在 F:\worksp\golang 目录下。安装Go编程环境请参考:/tutorial/detail-5562.html

range-over-channels.go的完整代码如下所示 -

package main

import "fmt"

func main() {

    // We'll iterate over 2 values in the `queue` channel.
    queue := make(chan string, 2)
    queue <- "one"
    queue <- "two"
    close(queue)

    // This `range` iterates over each element as it's
    // received from `queue`. Because we `close`d the
    // channel above, the iteration terminates after
    // receiving the 2 elements.
    for elem := range queue {
        fmt.Println(elem)
    }
}

执行上面代码,将得到以下输出结果 -

F:\worksp\golang>go run range-over-channels.go
one
two

上一篇:Go关闭通道实例

下一篇:Go计时器实例

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程