channel通道可以理解为多个Goroutine相互沟通的管道,通过channel通道我们可以实现多个Goroutine之间的相互通信
“不要通过共享内存来通信,而应该通过通信来共享内存” 这是一句风靡golang社区的经典语
比如我们要某个数据给一个协程Goroutine,我们就可以把这个数据传入通道,而协程只需要从通道中获取就行了
通道的定义
通道本身需要一个类型进行修饰,就像切片类型需要标识元素类型。通道的元素类型就是在其内部传输的数据类型,
//声明通道
var 通道名 chan 数据类型
//创建通道:如果通道为nil(就是不存在),就需要先创建通道
通道名 = make(chan 数据类型,[缓存通道大小])
// 或者
通道名 := make(chan 数据类型) // 这样就既声明也创建了
//数据传入通道
通道名<- 数据
//数据取出通道
数据<- 通道名
func main(<