chan<- T 说是只能发送值到 chan,这个限定意义是什么?总要读取 chan 的值啊

2018 年 2 月 13 日
 admirez
2153 次点击
所在节点    Go 编程语言
9 条回复
ke1e
2018 年 2 月 13 日
你可以 for 循环读取 chan 值也可以 T <- chan
ke1e
2018 年 2 月 13 日
@ke1e T := <-chan
SuperFashi
2018 年 2 月 13 日
楼上好像没看懂……

个人觉得只是防止写错手滑而已,让编译器来帮你纠正,就和运行时的 const 一样。
looplj
2018 年 2 月 13 日
楼上说的对,一般用 channel 都是单向的,一端生产,一端消费。
dtynn
2018 年 2 月 13 日
一般是用在将 chan 作为参数传递的场景, 避免生产端做出了消费的操作. 或者如上面楼层说的, 避免手滑写错.
<-chan T 也类似, 不过是仅可消费
owenliang
2018 年 2 月 13 日
可以读 close 事件吧?
lxml
2018 年 2 月 13 日
<- chan T only-Read
chan <- T ony-Write-Close

个人感觉有点像 make([]int64, len, cap) 语法后面的那个 cap,没什么大的用,缺这个特性也没啥。
danielzhang0212
2018 年 2 月 14 日
赞同 #5 @dtynn 的解释。
zhs227
2018 年 2 月 14 日
防止只能读的设计被庸人误用来写数据,或者自己手 抖打错了。简单类比一下 class 中的 private 关键字设计

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/430606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX