当从一个频道直接发送到另一个频道时,我偶然发现了一些令人惊讶的行为:
package main
import (
"fmt"
)
func main() {
my_chan := make(chan string)
chan_of_chans := make(chan chan string)
go func() {
my_chan <- "Hello"
}()
go func() {
chan_of_chans <- my_chan
}()
fmt.Println(<- <- chan_of_chans)
}
我希望<- my_chan发送"Hello"type string。但是,它发送类型chan string并且我的代码运行良好。这意味着正在(string或chan string)发送的内容取决于接收者的类型。
我尝试过天真的谷歌搜索,但由于我不熟悉正确的术语,我什么也没有想出。是否有与上述行为相关的适当术语?当然,任何额外的见解都很棒。
慕娘9325324
相关分类