這里通道關(guān)閉了,外層循環(huán)也終止了?
for循環(huán)里我加了打印序號(hào),結(jié)果顯示通道關(guān)閉以后,for循環(huán)也結(jié)束了。老師,這是什么原因???
package main
import "fmt"
func main() {
????ch4 := make(chan int, 1)
????for i := 0; i < 4; i++ {
????????fmt.Printf("序號(hào):%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
????????}
????}
}
2016-10-02
你在main方法體里寫(xiě)了if !ok {
????fmt.Println("End.")
????????????????return
}
channel通道關(guān)閉后,強(qiáng)取數(shù)據(jù)會(huì)產(chǎn)生!ok的結(jié)果,進(jìn)而執(zhí)行了return,return是指跳出了main方法。