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

2018-02-13 17:48:05 +08:00
 admirez
1433 次点击
所在节点    Go 编程语言
9 条回复
ke1e
2018-02-13 17:50:35 +08:00
你可以 for 循环读取 chan 值也可以 T <- chan
ke1e
2018-02-13 17:51:34 +08:00
@ke1e T := <-chan
SuperFashi
2018-02-13 18:10:38 +08:00
楼上好像没看懂……

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

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

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

https://www.v2ex.com/t/430606

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

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

© 2021 V2EX