有一个接受函数chan []byte(因为没有指定方向,所以我理解它是双向的)。该函数不发送或接收任何内容,仅出于统计相关目的查看通道中的元素数量。我想在具有以下签名的函数中调用此函数:func foo(fooChannel chan<- []byte)但是当我尝试使用参数来调用另一个函数时,我得到了错误cannot use fooChannel (type <-chan []byte) as type chan []byte in function argument。有没有办法将 fooChannel 转换为chan []byte?由于我只对获取一些统计数据感兴趣,我应该如何设计函数的原型以接受任何类型的通道(这样我甚至可以摆脱“字节”部分)?我只使用len和cap接收作为参数的通道。
2 回答
喵喔喔
TA贡献1735条经验 获得超5个赞
稍微改写一下:
“有没有办法将有向频道转换为无向频道?” 不,没有。
“Go 中有‘任意通道’(没有元素类型)的概念吗?” 不,没有。Go 没有泛型。
您必须编写多个函数。
- 2 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消