为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
白板的微信 2021-09-13 16:54:40
有一个接受函数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 没有泛型。

您必须编写多个函数。


查看完整回答
反对 回复 2021-09-13
  • 2 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信