Skip to content

Latest commit

 

History

History
7 lines (4 loc) · 1.17 KB

File metadata and controls

7 lines (4 loc) · 1.17 KB

通道(Channel)

通道(channel)是Go提供的一种通信机制,允许goroutines之间进行数据传输。但也有一些明确的规则,首先,每个通道只允许交换指定类型的数据,也称为通道的元素类型,其次,要使通道正常运行,还需要保证通道有数据接收方。使用chan关键字即可声明一个新通道,且可以使用close()函数来关闭通道。

最后,有一个非常重要的细节:当你使用通道作为函数参数时,你可以指定其方向; 也就是说,该通道是用于发送数据或是接收数据。在我看来,如果你事先知道一个通道的用途,你应该使用这个功能,因为它会使你的程序更健壮,也更安全。你将无法意外地将数据发送到应该只从其接收数据的通道,或从应该只向其发送数据的通道接收数据。因此,如果你声明一个通道函数参数将被用于只读,并尝试对其进行写操作,那么你将得到一条错误消息,它可能会帮助你从讨厌的bug中解救出来。我们将在本章后面讨论这个问题。

Tip: 作者说第十章一定要学习呀,会有更有很好的理解。