!!!!!!go中管道的理解之---遍历管道+管道关闭+select=====三种断言方式

1.管道遍历有3种方式见下贴图

每种方式都要求没有数据的时候,管道是关闭的,不然试图读取空管道会panic

遍历的本质-循环-go中只有for: [要遍历的对象]+ [遍历出来的东西存放的容器]+ [ 遍历的 条件]

这三种方式,遍历1个管道,我推荐1,一个for中同时遍历多个管道,并使用,我推荐3,好像也只能使用3吧。

当然方式1,2也可以在for外部构建一个容器,每次把每层循环的数据倒那个容器内。总之for出来的数据必须有个容器装;

共同点:都需要反复读-for,读到空的会panic

区别:方式1,2只能在循环体内使用数据,局部变量出了循环,就不认,最关键的,只能同时遍历1个,注意是1个;方式3,比较灵活,循环体内体外皆可使用,最关键的,可以同时遍历多个,注意是多个。

方法3的灵活应用见我写的,https://blog.csdn.net/u013755520/article/details/89552275 go实现归并排序

【一】for v:=range p{//遍历出来的数据,每一层创建一个容器v,v作用域是一层循环,一层结束后释放,下一层再建
		fmt.Println(v)//循环的条件是   p中有数据
	  }

【二】	for{//无条件循环,最后通过break跳出循环   注意循环不会造成栈溢出,因为一层结束后释放本层
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值