golang跳出for循环——匿名函数

25次阅读

共计 457 个字符,预计需要花费 2 分钟才能阅读完成。

搜索了 golang 退出 for 循环的方法,基本都是围绕 break label 和 goto。我觉得这两种方式都存在在程序里乱跳的缺点。想到了一个用匿名函数的方式,记录一下
匿名函数方式退出 for 循环
直接上代码
func main(){
begin := time.Now()
ch := make(chan int,4)
for i := 1; i < 5; i++ {
go worker(ch,i)
}
time.Sleep(time.Millisecond)
func() {
for{
select {
case temp:=<-ch:
fmt.Println(“Read channel : “,temp)
default:
return
}
}
}()
close(ch)
duration := time.Since(begin)
fmt.Println(“Duration: “,duration)
time.Sleep(time.Second)
}

func worker(ch chan int,id int){
fmt.Println(“ID:”,id,”is sending channel”)
ch <- id
}

正文完
 0