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

我是 Go 的新手,如果我的问题看起来很愚蠢,我很抱歉。

我很难掌握 Golang 中的通道语法和词汇,特别是当它涉及方向时。

当我读到这c chan<- int是一个“仅发送”通道时,我知道该通道只能发送数据。但似乎恰恰相反,我们只能往这个chan里放东西。

对于“仅接收”通道也是如此c <-chan int:对我来说,这是一个只能接收数据的通道,但似乎这种通道只能发送数据而不能接收一些数据。

你看,我真的很困惑,所以如果你有更好的方法来解释它,或者有一个好的记忆方法来理解它,我将在余下的日子里感谢你!


aluckdog
浏览 66回答 1
1回答

蝴蝶不菲

该通道无法发送或接收数据。您可以在通道上发送数据,也可以从通道接收数据。然后方向正如它的名字所说的那样。另请注意,“箭头”使方向可视化。chan如果它像 一样指向通道(指向) c chan<- int,则它是仅发送的。如果它指向远离通道(在 之外chan)的地方,例如c <-chan int,则它是仅接收的。实际发送任何内容(发送语句)c <- 1或从中接收内容(接收操作符)也是如此a = <-c。
打开App,查看更多内容
随时随地看视频慕课网APP