Golang 如何关闭一个通道
在Golang中,我们可以通过 close() 函数来关闭一个 通道 。一旦一个通道被关闭,我们就不能向它发送数据,尽管我们仍然可以从它那里读取数据。一个关闭的通道表示我们想表明这个通道的工作已经完成,没有必要再打开。
当我们用 make 关键字声明一个通道时,我们就打开了这个通道。
例子1
让我们考虑一个非常简单的例子,在这个例子中,我们将创建一个缓冲通道,然后向其传递数据,然后关闭该通道。
考虑一下下面的代码。
输出
如果我们在上述代码上运行命令 go run main.go ,那么我们将在终端得到以下输出。
例2
应该注意的是,如果我们试图在通道关闭后向其发送一些值,那么我们将得到一个 恐慌。
请看下面的代码。
输出
如果我们在上述代码上运行命令 go run main.go ,那么我们将在终端得到以下输出。
例三
尽管我们不能向一个封闭的通道发送数据,但我们仍然可以从一个封闭的通道读取数据。请看下面的代码。
输出
如果我们在上述代码上运行命令 go run main.go ,那么我们将在终端得到以下输出。