全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

golang中单向channel的语法介绍

本文主要给大家介绍的是关于golang单向channel语法的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍:

今天闲来无事补充一下golang的语法知识,想起来看看context的用法,结果碰到了一个没见过的channel语法:

// A Context carries a deadline, cancelation signal, and request-scoped values
// across API boundaries. Its methods are safe for simultaneous use by multiple
// goroutines.
type Context interface {
 // Done returns a channel that is closed when this `Context` is canceled
 // or times out.
 Done() <-chan struct{}
 
 // Err indicates why this Context was canceled, after the Done channel
 // is closed.
 Err() error
 
 // Deadline returns the time when this Context will be canceled, if any.
 Deadline() (deadline time.Time, ok bool)
 
 // Value returns the value associated with key or nil if none.
 Value(key interface{}) interface{}
}

注意看:Done() <- chan struct{} ,一个接口函数的声明怎么这么奇怪呢?下面来分解一下。

Done() chan struct{} :如果函数定义改成这样,其意义是,

  • 函数名Done,参数(),返回值chan struct{}
  • 单独拿返回值来说,它是一个管道chan,内部的数据类型是struct{}
  • 单独拿struct{}来说,我们熟悉type Name struct{a int, b bool}这样去定义一个结构体的类型,其实struct{…}就是定义结构体,和map[string]int这种定义是一样的,type只是给它启了一个别名。

<- chan struct{} :单独看这个表达式,我们知道如果ch := make(chan struct{}) ,那么<- ch是从管道里取出数据。但是chan struct{}是类型而不是变量,竟然能从一个类型里取数据??

其实<-chan int仍旧是一个管道类型,它叫做单向channel。如果是<-chan int,说明是只能读不能写的管道(也不能关闭),如果是chan <- int ,说明是只能写不能读的管道(可以关闭),仅此而已!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者使用Go语言能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# golang  # 单向channel  # channel  # Golang中channel使用的一些小技巧  # Golang优雅关闭channel的方法示例  # 详解Golang中Channel的用法  # Golang中channel的原理解读(推荐)  # Golang中channel的用法举例详解  # 返回值  # 的是  # 是一个  # 无事  # 相关内容  # 是从  # 它是  # 给大家  # 来看看  # 没见过  # 这篇文章  # 谢谢大家  # 多说  # 仅此而已  # 怎么这么  # 给它  # 闲来  # 而不是  # 里取出  # 是一样的 


相关文章: 深圳网站制作培训,深圳哪些招聘网站比较好?  如何获取免费开源的自助建站系统源码?  建站VPS选购需注意哪些关键参数?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  ,在苏州找工作,上哪个网站比较好?  建站主机类型有哪些?如何正确选型  h5在线制作网站电脑版下载,h5网页制作软件?  如何解决VPS建站LNMP环境配置常见问题?  Thinkphp 中 distinct 的用法解析  成都网站制作公司哪家好,四川省职工服务网是做什么用?  ,石家庄四十八中学官网?  如何通过PHP快速构建高效问答网站功能?  大连网站制作公司哪家好一点,大连买房网站哪个好?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  海南网站制作公司有哪些,海口网是哪家的?  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何通过服务器快速搭建网站?完整步骤解析  seo网站制作优化,网站SEO优化步骤有哪些?  ,怎么在广州志愿者网站注册?  长沙企业网站制作哪家好,长沙水业集团官方网站?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  济南企业网站制作公司,济南社保单位网上缴费步骤?  c# await 一个已经完成的Task会发生什么  建站DNS解析失败?如何正确配置域名服务器?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  建站之星如何防范黑客攻击与数据泄露?  如何选择适配移动端的WAP自助建站平台?  济南专业网站制作公司,济南信息工程学校怎么样?  招商网站制作流程,网站招商广告语?  如何在IIS7上新建站点并设置安全权限?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  建站之家VIP精选网站模板与SEO优化教程整合指南  网站代码制作软件有哪些,如何生成自己网站的代码?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  简历在线制作网站免费版,如何创建个人简历?  如何在Windows 2008云服务器安全搭建网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  建站之星安装需要哪些步骤及注意事项?  如何在Tomcat中配置并部署网站项目?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  建站之星如何优化SEO以实现高效排名?  网站制作服务平台,有什么网站可以发布本地服务信息?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  表情包在线制作网站免费,表情包怎么弄?  如何在新浪SAE免费搭建个人博客?  北京网站制作公司哪家好一点,北京租房网站有哪些? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。