多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# **通道(Channel)** 通道(`channel`)是Go提供的一种通信机制,允许`goroutines`之间进行数据传输。但也有一些明确的规则,首先,每个通道只允许交换指定类型的数据,也称为通道的元素类型,其次,要使通道正常运行,还需要保证通道有数据接收方。使用`chan`关键字即可声明一个新通道,且可以使用`close()`函数来关闭通道。 最后,有一个非常重要的细节:当你使用通道作为函数参数时,你可以指定其方向; 也就是说,该通道是用于发送数据或是接收数据。在我看来,如果你事先知道一个通道的用途,你应该使用这个功能,因为它会使你的程序更健壮,也更安全。你将无法意外地将数据发送到应该只从其接收数据的通道,或从应该只向其发送数据的通道接收数据。因此,如果你声明一个通道函数参数将被用于只读,并尝试对其进行写操作,那么你将得到一条错误消息,它可能会帮助你从讨厌的bug中解救出来。我们将在本章后面讨论这个问题。 >Tip: 作者说第十章一定要学习呀,会有更有很好的理解。