下面是一个简单的示例,演示如何关闭一个通道:

package main

import "fmt"

func main() {
    // 创建一个整数类型的通道
    ch := make(chan int)

    // 开启一个 goroutine,向通道发送数据
    go func() {
        for i := 0; i < 5; i++ {
            ch <- i
        }
        // 关闭通道
        close(ch)
    }()

    // 从通道接收数据,直到通道被关闭
    for n := range ch {
        fmt.Println(n)
    }
}

在上面的示例中,我们创建了一个整数类型的通道 ch。然后,我们开启一个 goroutine,向通道发送数据。在发送完 5 个数据后,我们通过 close(ch) 关闭了通道。

接着,我们使用 for n := range ch 的形式从通道接收数据,直到通道被关闭。在每次循环中,我们打印接收到的数据 n

值得注意的是,当通道被关闭后,即使通道中还有未被接收的数据,我们仍然可以通过 for n := range ch 的形式从通道中读取数据。在读取完所有数据后,for n := range ch 会自动退出循环。

golang 通道关闭样例

原文地址: https://www.cveoy.top/t/topic/NkW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录