package main
import "fmt"
import "log"
func main() {
fmt.Println(test())
}
func test() bool {
ch := make(chan int,30)
for i := 0; i < 30; i++ {
ch <- i
}
for {
select {
case d :=<- ch:
log.Printf("Executor received: %v", d)
default:
break
}
}
return true
}
該代碼不能跳出for循環,不能打印true,所以要再for循環外加代碼塊,在select里面 break代碼塊就可以跳出for循環了loop:
loop:
for {
select {
case d :=<- ch: // 取數據
log.Printf("Executor received: %v", d)
default:
close(ch)
break loop
}
}
return true
