wemeya
2016-09-25 16:36
for循环里我加了打印序号,结果显示通道关闭以后,for循环也结束了。老师,这是什么原因啊?
package main
import "fmt"
func main() {
ch4 := make(chan int, 1)
for i := 0; i < 4; i++ {
fmt.Printf("序号:%d\n", i)
select {
case e, ok := <-ch4:
if !ok {
fmt.Println("End.")
return
}
fmt.Println(e)
close(ch4)
default:
fmt.Println("No Data!")
ch4 <- 1
}
}
}
你在main方法体里写了if !ok {
fmt.Println("End.")
return
}
channel通道关闭后,强取数据会产生!ok的结果,进而执行了return,return是指跳出了main方法。
Go语言第一课
107794 学习 · 148 问题
相似问题