golang中单向channel有啥用处
我知道单向channel是怕渠道滥用, 只能读的渠道出现写的情况, 但是具体的用法呢
比如time包里面的Timer
屏幕快照 2019-09-12 下午3.50.04
这边将C 已经定义为了, 只出的类型, 那么是怎么赋值的呢, 找了下貌似没找到
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
总结一下:
a := make(chan int, 3)
a <- 1 // 塞了一个数据
//往渠道里塞2,3 两个数字
func test2(b chan<- int) {
}
fmt.Println(a)
得到的结果是1,2,3
虽然 C 是
<-chan Time
类型,但你依然可以赋给它一个chan Time
,写的话,就用这个chan Time
就行了给你看看官方怎么赋值的:
非常好的问题,我也正向问这个问题呢
楼上说的对,我在白话一些:
官方对 Channel 类型的解释 里面讲到了 只读/只写 通道,不过没有介绍具体的应用场景。不过从特性来看,如果把一个变量定义为只读的channel,那么在这个函数里面只能读这个变量,如果尝试写这个变量编译器会报错,从而可以避免编码出错。
定义时候可以定义为双向通道,函数引用的时传入单向通道,增加代码可读性
这种引用通道的方式,让人一看就知道只会从strChan中取数据