golang channel chan类型传给chan类型
type client chan string
var a = make(chan string)
var b = make(chan client)
func main() {
go func() {
a <- "hello"
fmt.Println("接收a成功")
}()
go func() {
b <- a
fmt.Println("接收b成功")
}()
fmt.Println(a)
fmt.Println(<-b)
}
上述代码的输出是
0xc00003e060
0xc00003e060
接收 b 成功
疑问:代码 b<-a 没有将 a 的值传给 b 吗,只是将 a 的引用传给 b?这是为什么呢?
推荐文章: