當一個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