Goroutines & Channels
// 由于 channel 关闭后,接受操作还是会接受零值,所以可以通过下面方式判断channel 是否关闭
x, ok := <- ch
if !ok {
// closed
}
// 上面的语法啰嗦,go 提供了 range
for x := range ch {
}Last updated
// 由于 channel 关闭后,接受操作还是会接受零值,所以可以通过下面方式判断channel 是否关闭
x, ok := <- ch
if !ok {
// closed
}
// 上面的语法啰嗦,go 提供了 range
for x := range ch {
}Last updated
// select 语句的一般形式:
select {
case <- ch1:
//
case x := ch2:
//
case ch3 <- y:
//
default:
//
}
// 会永远等下去
select {}