为什么 select 可以一直读取数据,func函数不是只运行了一次吗?
package main
import "time"
var chanInt = make(chan int)
var chanStr = make(chan string)
func main() {
go func() {
chanInt <- 100
chanStr <- "200"
close(chanStr)
close(chanInt)
//time.Sleep(time.Second)
}() // will the coroutine always run?
println(<-chanInt)
println(<-chanStr)
println(<-chanStr)
println(<-chanStr)
println(<-chanStr)
for true {
println("begin select")
select {
case r := <-chanInt:
{
println("chanInt", r)
}
case r := <-chanStr:
{
println("chanStr", r)
}
default:
println("default..")
break
}
time.Sleep(time.Second)
//break
}
}