Go-Micro, возвращающий адрес локальной переменной выпуска - PullRequest
0 голосов
/ 28 ноября 2018

Код функции сервера:

func (s *service) CreateConsignment(ctx context.Context, req *pb.Consignment, resp *pb.Response) error {
consignment, err := s.repo.Create(req)
if err != nil {
    return err
}
resp = &pb.Response{Created: true, Consignment: consignment}
return nil

}

Код клиента:

resp, err := client.CreateConsignment(context.Background(),consignment)
if err != nil {
    log.Fatalf("create consignment error: %v", err)
}

Но клиент имеет следующие значения:

{false <nil> [] {} [] 0}

Единственный способ заставить его работать сейчас - это установить респ на сервере следующим образом:

resp.Created = true
resp.Consignment = consignment

Проблема здесь такова:

resp = &pb.Response{Created: true, Consignment: consignment}

почему настройка респ работает вручную, ноприсвоение его адресу новой локальной переменной не так ли?

...