什么是 Channel
在 Go 语言中有句至理名言是这么说的: “不要通过共享内存来通信, 而应通过通信来共享内存”.
可见通信是至关重要的一点, 那么如何实现通信呢?
Go 提供了一个原语来作为通信的媒介, 我们通常称之为 “管道/信道/通道”.
我们暂时先抛开到底是哪个原语不说. 先来看看生活中的管道.
生活中的管道/信道/通道
为了便于理解, 我们看看生活中的管道/信道/通道.
水管和电管:
火车轨道:
当然还有很多的例子.
想想当电跑到水管里, 汽车在火车轨道上跑…会发生点什么?
这个一个值得深思的问题.
但可以知道的是一个明确的数据类型可以有效减少混乱和复杂度.
我们再来个例子看看生活中的信道:
满满都是回忆的儿时玩具: “纸话筒”.
连接两个纸话筒的那根线就是一种信息媒介, 俗称信道.
类似还有电话线, 网线等等.
而在 Go 语言中, 这种数据媒介叫做 channel
, 关键字为 chan
, 也就是我们前面所说的原语.
小白表示为什么非要简写呢? 本来单词就认识的不多, 平添困扰.