代码点读机 / Go / close

close Go · 内置功能

关闭一个通道,表示不会再往里面发送数据;接收方可以检测通道是否已关闭。

怎么用

close(通道)

小例子

package main
import "fmt"

func main() {
    ch := make(chan int)
    close(ch)
    v, ok := <-ch
    fmt.Println(v, ok)
}

运行结果

输出 0 false

提醒:通常由发送方关闭;向已关闭通道发送数据会 panic

官方文档:https://go.dev/ref/spec#Built-in_functions

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Go全部词条