go:如何将定向通道传递给接受双向通道的函数?

有一个接受函数chan []byte(因为没有指定方向,所以我理解它是双向的)。该函数不发送或接收任何内容,仅出于统计相关目的查看通道中的元素数量。

我想在具有以下签名的函数中调用此函数:

func foo(fooChannel chan<- []byte)

但是当我尝试使用参数来调用另一个函数时,我得到了错误cannot use fooChannel (type <-chan []byte) as type chan []byte in function argument

有没有办法将 fooChannel 转换为chan []byte

由于我只对获取一些统计数据感兴趣,我应该如何设计函数的原型以接受任何类型的通道(这样我甚至可以摆脱“字节”部分)?我只使用lencap接收作为参数的通道。


白板的微信
浏览 150回答 2
2回答

喵喔喔

稍微改写一下:“有没有办法将有向频道转换为无向频道?”&nbsp;不,没有。“Go 中有‘任意通道’(没有元素类型)的概念吗?”&nbsp;不,没有。Go 没有泛型。您必须编写多个函数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go