我是Go中的新手,如果我的问题看起来很愚蠢,请对不起。
我真的很难在Golang中获得频道语法和词汇,尤其是关于方向的时候。
当我看到c chan<- int
是一个“仅发送”通道时,我知道该通道只能发送数据。但这似乎是相反的,我们只能将内容放入此chan中。
与“仅接收”通道c <-chan int
相同:对我来说,这是一个只能接收数据的通道,但看来这种通道只能发送数据而不能接收某些数据。
看,我真的很困惑,因此,如果您有更好的解释方式,或者是一种通俗易懂的助记符方式,我将在余下的时间里感谢您!
答案 0 :(得分:2)
频道无法发送或接收数据。 您可以在通道上发送数据,并且可以从通道 接收数据。方向就是它的名字。
还请注意,“箭头”将方向可视化。如果它像chan
一样指向频道(朝c chan<- int
指向),则为仅发送。如果它像chan
那样远离频道(在c <-chan int
之外),则表示它是仅接收的。
Same实际上是在其上发送任何内容(Send statement,例如c <- 1
,或从其中接收某些内容(Receive operator),例如a = <-c
。