登录
首页 >  Golang >  Go问答

golang select 和 chan的疑问

来源:SegmentFault

时间:2023-01-19 12:50:32 100浏览 收藏

本篇文章给大家分享《golang select 和 chan的疑问》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

func second\_115() {  
   i := 0  
  f := func() int {  
      i++  
      return i  
  }  
   ch := make(chan int, 1)  
// ch 

现在代码输出的是 hello,为什么将注释放开以后执行的是default,输出的是2? 已经懵逼了。。。

正确答案

如果不注释的话

ch 向通道中塞了一个值,通道就满了,
select
里面就塞不进去了,所在走的default,你要不把通道里面的值消耗掉,要么把通道容量设置大一点。
  1. 消耗值,在 ch取出一个值,现在通道又空了;
  2. ch := make(chan int, 1)
    这条语句里面1改为2

今天关于《golang select 和 chan的疑问》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于golang的内容请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表