go for select
博客专区 > qii 的博客 > 博客详情
go for select
qii 发表于1年前
go for select
  • 发表于 1年前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

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

package main

import (
   "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 main

import (
   "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 main

import (
   "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 main

import (
   "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
      }
   }
}

 

共有 人打赏支持
粉丝 14
博文 77
码字总数 23520
×
qii
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: