+----------------+ +-----------------+
| Channel foo | | Channel foo |
| a.go | | b.go |
+----------------+ +-----------------+
| |
|__________________________________________|
Send or receive data through 'foo' channel
我可以创建两个Go源代码文件,并通过一个通道发送或接收数据,如上图/插图所述?因此,当源代码运行时,这些文件可以通过发送数据相互通信。
答案 0 :(得分:4)
频道只是Go中的变量,例如int
,[]byte
或bool
。如果你可以在包之间传递任何变量,那么显然你也可以在包之间传递通道。一旦你将一个频道从一个频道传递到另一个频道,你当然可以自由地在那里使用它,就像你对任何其他变量一样。这意味着您可以在一个包中发送数据,然后在另一个包中接收数据。
如果不能在包之间共享渠道,最终渠道将不会非常有用。