天天看點

Go語言如何判斷一個chan被關閉

當一個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
      
下一篇: vim指令總結