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

是否可以说服 Golang 编译器接受 `type Foo int` 作为 `int`?

是否可以说服 Golang 编译器接受 `type Foo int` 作为 `int`?

Go
芜湖不芜 2021-12-07 10:28:40
我正在使用pebbe/zmq4Go的ZeroMQ 绑定,并且我正在尝试为 ZeroMQ 实现的代码开发更高级别的接口,以支持我的测试中的模拟。作为我的问题的一个例子,zmq4.Socket结构的RecvMessage函数需要 azmq4.Flag作为参数。zmq4.Flag只是一个int,如type Flag intGo 绑定中定义的那样。我正在尝试开发我的接口而不依赖于 ZeroMQ 绑定,所以我有一个接口定义为:type Socket interface {    RecvMessage(int) ([]string, error)}当我尝试为此接口使用 ZeroMQ 套接字时,我收到一条错误消息,指出... have RecvMessage(zmq4.Flag) ([]string, error) want RecvMessage(int) ([]string, error).有什么办法可以解决这个问题,还是我只需要硬着头皮依赖我的接口中的 ZeroMQ 绑定?
查看完整描述

1 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

重要的是要意识到这type Foo int是一个单独的类型而不是别名。

使用 zmq4.Flag 调用 RecvMessage 唯一可以做的就是将其转换为 int。

var f zmq4.Flag = 1
RecvMessage(int(f))


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

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