博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go for select
阅读量:6980 次
发布时间:2019-06-27

本文共 1304 字,大约阅读时间需要 4 分钟。

hot3.png

select里面的break是无法退出for语句的。如下;

package mainimport (   "fmt")func main() {   var c=make(chan int,1024)   quit:=make(chan string,1)   c<-1   quit<-"q"   for{      select{         case <-c:            fmt.Println("here")         case <-quit:            fmt.Println("quit")            break      }   }}

有几种方法可以退出for循环

1使用goto语句:

package mainimport (   "fmt")func main() {   var c=make(chan int,1024)   quit:=make(chan string,1)   c<-1   quit<-"q"   for{      select{         case <-c:            fmt.Println("here")         case <-quit:            fmt.Println("quit")            goto forEnd      }   }   forEnd:}

2使用break标签

package mainimport (   "fmt")func main() {   var c=make(chan int,1024)   quit:=make(chan string,1)   c<-1   quit<-"q"   forEnd:   for{      select{         case <-c:            fmt.Println("here")         case <-quit:            fmt.Println("quit")            break forEnd      }   }}

3使用return语句

package mainimport (   "fmt")func main() {   var c=make(chan int,1024)   quit:=make(chan string,1)   c<-1   quit<-"q"   some(c, quit)   fmt.Println("end")}func some(c1 chan int,c2 chan string)  {   for{      select{         case <-c1:            fmt.Println("here")         case <-c2:            fmt.Println("quit")            return      }   }}

 

转载于:https://my.oschina.net/qii/blog/731626

你可能感兴趣的文章
C语言双链表遍历,插入,删除
查看>>
关于git bush 中不能复制黏贴的问题
查看>>
java中的移位运算符
查看>>
Gitlab Issue Tracker and Wiki(一)
查看>>
js数组指定位置添加删除
查看>>
Word2010开发——操作文档
查看>>
JPA主键生成策略
查看>>
项目总结10:通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题...
查看>>
[洛谷P1317]低洼地
查看>>
asp语言中if判断语句的求助
查看>>
AngularJS2 + ASP.NET MVC项目
查看>>
CSS a控制超链接文字样式
查看>>
设置IE兼容模式
查看>>
Selenium 2 & WebDriver &多线程 并发
查看>>
软件测试-培训的套路-log3
查看>>
配置linux-Fedora系统下iptables防火墙
查看>>
C# Obsolete(已弃用方法属性)
查看>>
ios多线程和进程的区别(转载)
查看>>
性能优化之Java(Android)代码优化
查看>>
Codeforces 862B - Mahmoud and Ehab and the bipartiteness
查看>>