Как справиться с вызовом golan rp c с массивом в качестве возвращаемого значения? - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу экспортировать свой сервис как сервис rp c, и мой локальный метод - получить всех пользователей (тип структуры) из БД, например,

func GetUsers() ([]model.User) {
    // business logic
}

Теперь я обернул метод как паттерны rp c выглядят следующим образом:

func (api *API) RpcGetUsers(_, reply []*model.User) error {
    reply = dal.GetUsers()
    return nil
}

Но когда я запустил функцию, произошла пани c. В нем упоминается, что «тип ответа« RpcGetUsers »не является указателем:« [] * model.User »« Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 29 апреля 2020
Документация

RP C гласит, что метод должен выглядеть следующим образом:

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 {
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...