Golang 的通道基础(一)
目录
前言
正文
结尾
前言
今天我们来聊一聊 Golang 中的通道,我们可以使用通道来传输数据,也可以传递消息,多个协程之间就是通过通道来通讯的。
正文
在 Golang 中如何表示通道呢?通道的关键字是 chan,但它是有类型,可以是整型、字符型、布尔型等。每个通道都有属于自己的类型,该类型表示通道中允许传递的数据类型,这一点是严格规定。通道作为一种数据类型,也有自己的默认值,零值为 nil, 通道必须使用 make() 方法来定义创建。
接下来,我们通过一段代码来理解一下吧。
实例代码:
代码执行结果:
我是通道 channel
我刚被声明,还没有定义,因此是 nil
我是通道 channel
我刚被 make 定义了,已经不是 nil 了
通过上面的代码,我们可以知道通道变量是通过关键字 chan 来声明的,同时需要指明通道内传输的数据的类型。另外,通道声明后是空值,需要使用 make() 方法来定义创建。
下面,我们来看看通道变量的类型和值。
完善上面的代码,修改如下:
代码执行结果:
我是通道 channel
我刚被声明,还没有定义,因此是 nil
我是通道 channel
我刚被 make 定义了,已经不是 nil 了
我的通道数据类型:chan int,通道的值:0xc000064060,
我们发现,通道的数据类型是 chan int,而不是 int。
另外,通道的值是一个地址,一个内存地址 0xc000064060 ,所以说通道一个引用类型的变量。
结尾
通道在 Golang 的实际使用场景中非常常见,所以我们需要认知学习,因为内容比较多,我分三部分分别介绍,本篇是基础篇。后边还会有入门篇和上手篇,敬请期待。
作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云社区云享专家、签约作者,欢迎关注我分享更多干货!😄
版权声明: 本文为 InfoQ 作者【liuzhen007】的原创文章。
原文链接:【http://xie.infoq.cn/article/6eac7be514b2fefb2fae346c6】。文章转载请联系作者。
评论