go语言从例子开始之Example30.通道遍历
2024-10-07 14:42:13
在前面的例子中,我们讲过 for
和 range
为基本的数据结构提供了迭代的功能。我们也可以使用这个语法来遍历从通道中取得的值
Example:
package main
import "fmt" //这个例子也让我们看到,一个非空的通道也是可以关闭的
//但是通道中剩下的值仍然可以被接收到。
func main() {
jobs := make(chan string, 2)
jobs <- "one"
jobs <- "two" //这个 range 迭代从 queue 中得到的每个值。因为我们在前面 close 了这个通道,
//这个迭代会在接收完 2 个值之后结束。如果我们没有 close 它,
//我们将在这个循环中继续阻塞执行,等待接收第三个值
close(jobs)
//我们将遍历在 jobs 通道中的两个值。
for ele := range jobs{
fmt.Println(ele)
} }
Result:
$ go run example.go
one
two
最新文章
- Centos7 升级内核和应用TCP BBR 算法
- windows环境PhpStorm中简单使用PHP_CodeSniffer规范php代码
- aspx页面调用发送邮件验证码(结合前两篇)
- Geometry Surface of OpenCascade BRep
- php练习:给指定商品添加特殊效果
- yum报错: Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
- python(8) 自己制造异常让程序退出,把print的内容写入到文件
- Ubuntu系统安装配置Pintos和Bochs
- VS2010中编写宏添加作者信息与函数注释
- 将SQL获取的信息传递到Email中
- JavaEE XML SAX解析
- java实现线性表
- FFmpeg 2.1 试用(新版支持HEVC,VP9)
- Lintcode470-Tweaked Identical Binary Tree-Easy
- 关于C#List中FindAll用法的一些简单示例
- thinkphp5中使用PHPExcel(转载)
- C# .net WebRequest HttpWebRequest 禁用系统默认代理。
- 外部线程停止Java子线程的方法
- [svc]Linux vmstat命令实战详解
- Hive查看table在HDFS上的存储路径