全网整合营销服务商

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

免费咨询热线: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的用法举例详解  # 返回值  # 的是  # 是一个  # 无事  # 相关内容  # 是从  # 它是  # 给大家  # 来看看  # 没见过  # 这篇文章  # 谢谢大家  # 多说  # 仅此而已  # 怎么这么  # 给它  # 闲来  # 而不是  # 里取出  # 是一样的 


相关文章: 北京的网站制作公司有哪些,哪个视频网站最好?  定制建站策划方案_专业建站与网站建设方案一站式指南  深圳网站制作案例,网页的相关名词有哪些?  如何快速搭建FTP站点实现文件共享?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  如何在IIS中新建站点并配置端口与IP地址?  如何挑选优质建站一级代理提升网站排名?  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何快速搭建高效服务器建站系统?  如何通过建站之星自助学习解决操作问题?  如何在自有机房高效搭建专业网站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  高防服务器租用如何选择配置与防御等级?  建站VPS推荐:2025年高性能服务器配置指南  网站代码制作软件有哪些,如何生成自己网站的代码?  建站主机如何选?高性价比方案全解析  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  南平网站制作公司,2025年南平市事业单位报名时间?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  建站VPS配置与SEO优化指南:关键词排名提升策略  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  建站之星安装模板失败:服务器环境不兼容?  建站之星多图banner生成与模板自定义指南  深圳网站制作的公司有哪些,dido官方网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何快速查询域名建站关键信息?  在线教育网站制作平台,山西立德教育官网?  如何破解联通资金短缺导致的基站建设难题?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  C#如何序列化对象为XML XmlSerializer用法  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  简单实现Android验证码  为什么Go需要go mod文件_Go go mod文件作用说明  如何在香港服务器上快速搭建免备案网站?  建站10G流量真的够用吗?如何应对访问高峰?  TestNG的testng.xml配置文件怎么写  太原网站制作公司有哪些,网约车营运证查询官网?  代刷网站制作软件,别人代刷火车票靠谱吗?  建站之星代理费用多少?最新价格详情介绍  如何通过商城自助建站源码实现零基础高效建站?  建站之星后台密码遗忘?如何快速找回?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  宝塔新建站点为何无法访问?如何排查?  红河网站制作公司,红河事业单位身份证如何上传?  广平建站公司哪家专业可靠?如何选择?  电商平台网站制作流程,电商网站如何制作?  建站org新手必看:2024最新搭建流程与模板选择技巧 

您的项目需求

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