使用Go通过频道发送频道

时间:2015-03-17 22:11:06

标签: concurrency go channel

我想通过频道发送指向频道的指针。 Go有可能吗?如何定义接受此类渠道的功能?

我试过了:

func test() (chan *chan)
func test() (chan chan)

1 个答案:

答案 0 :(得分:9)

总有一些类型与频道相关联。我们假设类型为T。 T的频道是:

chan T

指向T频道的指针是:

*chan T

指向T通道的指针通道为:

chan *chan T

接受指向T通道的指针通道的函数是:

func f(c chan *chan T) { }

由于频道是引用类型,因此您可能不需要使用指针。尝试使用

 func (f c chan chan T) { }

playground example