前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go+ for结合<-

Go+ for结合<-

作者头像
上分如喝水
发布2021-12-12 14:07:19
2000
发布2021-12-12 14:07:19
举报
文章被收录于专栏:XiaoLin笔记XiaoLin笔记

channel

< -是Go+里面的一个类型,叫channel,中文名叫管道,是Go+之间的一种通信机制,我们可以使用channel发送或者去接受数据,有点类似于Java的流编程。箭头方向表示数据的传递方向。

channel

channel和普通的类型一样,我们在使用之前也是需要去创建的,我们一般使用内置函数去创建。我们使用下面这种语法去声明一个chan int类型channel。

代码语言:javascript
复制
ch := make(chan int)

channel读操作

我们定义完channel以后就可以开始进行读操作了,切记的是,channel只有初始化以后才可以进行其他的操作。比如说读写,否则堵塞,而且是永久的,语法格式如下:

代码语言:javascript
复制
x <- ch

这段代码所表示的意思是从ch中读取数据,我们还有另一种方式去读取,这种方式会进行一个赋值操作。

代码语言:javascript
复制
x = <- ch

channel写操作

既然箭头的方向表示数据的流动方向,那么就意味着只要我们改变一下变量的文职即可将读操作反转为写操作。

代码语言:javascript
复制
ch <- x

关闭channel

channel和Java中的流一样,使用完以后需要去关闭流,否则会占用系统资源,我们可以使用内置函数close去关闭channel。

代码语言:javascript
复制
ch := make(chan int)
close(ch)

结合for循环

我们可以使用channel来结合for循环,比如说输出0-10,我们可以这样来写:

代码语言:javascript
复制
sum := 0
for i <- :11 {
	println("i=",i)
}

如果我们这样写的话,他是从0开始,并且是不含尾的,也就是意味着如果我们写10的话,其实只会输出到9,所以我们要多写一位。

最后写一个小demo,计算0-100的和,我们可以使用channel结合for循环这样写,确实普通的for循环写起来更简单,也更容易阅读。

代码语言:javascript
复制
sum := 0
for i <- :101 {
	sum += i
}
println(sum) // 5050
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-12-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • channel
    • channel
      • channel读操作
        • channel写操作
          • 关闭channel
          • 结合for循环
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档