如何在Go中了解频道方向?

问题描述 投票:1回答:1

我是Go中的新手,如果我的问题看起来很愚蠢,请对不起。

我真的很难在Golang中获得频道语法和词汇,特别是关于方向时。

[当我看到c chan<- int是一个“仅发送”通道时,我知道该通道只能发送数据。但这似乎是相反的,我们只能将内容放入此chan中。

与“仅接收”通道c <-chan int相同:对我来说,这是一个只能接收数据的通道,但看来这种通道只能发送数据而不能接收某些数据。

[看,我真的很困惑,因此,如果您有更好的解释方式,或者有助记法来理解它,我将在余下的时间里感谢您!

go concurrency channel
1个回答
1
投票

频道无法发送或接收数据。 可以在通道on上发送数据,并且可以在通道from上接收数据。然后方向就是它的名字所要表达的意思。

还请注意,“箭头”将方向可视化。如果它像chan一样指向通道(朝c chan<- int指向),则为仅发送。如果它像chan那样指向通道之外(在c <-chan int之外),则它是仅接收的。

[实际上是像在Send statement上向其发送任何内容(c <- 1,或像Receive operator一样从其接收内容(a = <-c)。

© www.soinside.com 2019 - 2024. All rights reserved.