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

如何处理以数组作为返回值的 go RPC 调用?

如何处理以数组作为返回值的 go RPC 调用?

Go
Smart猫小萌 2022-06-01 15:25:46
我想将我的服务导出为 RPC 服务,我的本地方法是从 db 获取所有用户(结构类型),如下所示,func GetUsers() ([]model.User) {    // business logic}现在我将方法包装为 RPC 模式,如下所示,func (api *API) RpcGetUsers(_, reply []*model.User) error {    reply = dal.GetUsers()    return nil}但是当我运行该函数时,发生了恐慌。它提到“方法“RpcGetUsers”的回复类型不是指针:“[]*model.User””我该如何解决这个问题?
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

RPC 文档说该方法必须如下所示:


func (t *T) MethodName(argType T1, replyType *T2) error

所以你需要一个请求和一个回复类型。你可以这样做:


type Empty struct{}

type Users struct {

   Users []model.User

}


func (api *API) RpcGetUsers(_ *Empty, reply *Users) error {

...

}


查看完整回答
反对 回复 2022-06-01
  • 1 回答
  • 0 关注
  • 215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号