
package main
import (
"fmt"
"time"
)
func goRoutineA(a chan int) {
a<-1
}
func main() {
ch := make(chan int)
go goRoutineA(ch)
time.Sleep(time.Second*1)
select{
case d := <- ch:
fmt.Println(d)
default:
fmt.Println("aaa")
}
fmt.Println("will exit..");
}
当注释掉 15行的 time.Sleep(time.Second*1 )时, 则会输出 “aaa”.
因为此时, ch这个channel还没有就绪!!