为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Go 中不混淆通道方向?

如何在 Go 中不混淆通道方向?

Go
aluckdog 2023-08-14 14:39:19
我是 Go 的新手,如果我的问题看起来很愚蠢,我很抱歉。我很难掌握 Golang 中的通道语法和词汇,特别是当它涉及方向时。当我读到这c chan<- int是一个“仅发送”通道时,我知道该通道只能发送数据。但似乎恰恰相反,我们只能往这个chan里放东西。对于“仅接收”通道也是如此c <-chan int:对我来说,这是一个只能接收数据的通道,但似乎这种通道只能发送数据而不能接收一些数据。你看,我真的很困惑,所以如果你有更好的方法来解释它,或者有一个好的记忆方法来理解它,我将在余下的日子里感谢你!
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

通道无法发送或接收数据。可以在通道发送数据,也可以通道接收数据。然后方向正如它的名字所说的那样。

另请注意,“箭头”使方向可视化。chan如果它像 一样指向通道(指向) c chan<- int,则它是仅发送的。如果它指向远离通道(在 之外chan)的地方,例如c <-chan int,则它是仅接收的。

实际发送任何内容(发送语句)c <- 1或从中接收内容(接收操作符)也是如此a = <-c


查看完整回答
反对 回复 2023-08-14
  • 1 回答
  • 0 关注
  • 61 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信