为了账号安全,请及时绑定邮箱和手机立即绑定

chan的长度如何解释

不是说这个chan的长度是1吗?ch2 := make (chan string,1),对吧,那为啥可以放入“已到达!”这三个字加一个标点符号呢,这就占了8个字节16bit的空间呢,这怎么理解啊,求各位大神指点

正在回答

2 回答

chan其实就是管道,这个管道可以 放入 什么类型的东西(就是 类型,例子中的 String),一共可以放入多少个这种东西(这就是 长度,例子中的 1),这就是 其 真正的含义。这个管道是 两头空的,只能从一头 放进去,从 另一头 取出来。当这个管道塞满了东西了后,再要塞 更多的东西,就 塞不进去了,只能等 另一边取了一些后,才能继续塞。所以,一个chan 满了之后,要往里面放入东西,只能等待(名词叫”堵塞“),等管道有空位的时候,才能再塞进去;而另外一边取东西的时候,也是一样,如果这个管道是空的,取不到东西,只能等待(”堵塞“)

1 回复 有任何疑惑可以回复我~

chan的长度并不是指通道的字节数,而是可以缓存的基本类型元素的个数,ch2 := make(chan string, 1)是指通道ch2中可以保存一个字符串,而不论这个字符串有多长。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Go语言第一课
  • 参与学习       107793    人
  • 解答问题       148    个

Go语言入门教程,编程之必备知识扩散,打好Go语言编程基础

进入课程

chan的长度如何解释

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信