猿问

如何对 Go 中的通道方向不感到困惑?

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

我很难在 Golang 中获得频道语法和词汇,尤其是在涉及方向的时候。

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

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

看,我真的很困惑,所以如果你有更好的解释方式,或者更好的助记方式来理解它,我会在剩下的日子里感谢你!


繁花不似锦
浏览 135回答 1
1回答

慕田峪9158850

通道不能发送也不能接收数据。可以在通道上发送数据,也可以从通道接收数据。然后方向正是它的名字所说的。另请注意,“箭头”表示方向。如果它像 一样指向通道(指向chan)c chan<- int,则它是只发送的。如果它像 一样指向远离通道(在 外面chan)c <-chan int,则它是只接收的。实际发送任何东西(发送语句)之类c <- 1的,或从中接收东西(接收运算符)之类的也是如此a = <-c。
随时随地看视频慕课网APP

相关分类

Go
我要回答