猿问

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

我想将我的服务导出为 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””


我该如何解决这个问题?


Smart猫小萌
浏览 216回答 1
1回答

呼唤远方

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 {...}
随时随地看视频慕课网APP

相关分类

Go
我要回答