09.4.3 通道作为函数参数传递

来看代码:

package main
import (
"fmt"
)
func main() {
    willClose := make(chan int, 10)
    willClose <- -1
    willClose <- 0
    willClose <- 2

    <-willClose
    <-willClose
    <-willClose

    close(willClose)
    read := <-willClose
    fmt.Println(read)
}

代码创建了一个int类型的通道willClose,并且向其中写入三个值,然后再依次读出来。后面关闭这个通道后,再尝试从其中读数据,执行这个程序输出结果:

$ go run readClose.go
0

这个结果表明,如果我们尝试从关闭的通道中读取数据,其会返回基本类型的初始值。

Last updated

Was this helpful?