當一個chanel被關閉後,再取出不會阻塞,而是傳回零值
package main
import "fmt"
func main() {
c := make(chan int, 5)
c <- 123
close(c)
fmt.Println(<-c)
fmt.Println(<-c)
}
輸出
123
0
判斷的方法是否關閉方法就是接收第二個參數,如下
package main
import "fmt"
func main() {
c := make(chan int, 10)
c <- 123
close(c)
var res int
var ok bool
res, ok = <-c
fmt.Println(res, ok)
res, ok = <-c
fmt.Println(res, ok) //此時ok為false
}
123 true
0 false