使用重复字段创建 grpc 客户端请求

Creating grpc client request with repeated fields

我有这样的原型文件:

message StartAssignmentRequest {
  string additional_comment = 3;
  repeated RideSlip slips = 4;
}


message RideSlip{
  string slip_name = 2;
  string slip_ext = 3;
  string slip_link = 4;
}

现在我想创建它的请求,我正在做这样的事情:

req := &api.StartAssignmentRequest{
    AdditionalComment:"AdditionalComment",
    Slips: &api.RideSlip[],
}

但不知道如何正确发送 RideSlip 数据。

Protobuffer(2 和 3)repeated 字段在 Go 中是 compiled to slices

只需append即可:

req := &api.StartAssignmentRequest{
    AdditionalComment: "AdditionalComment",
}

req.Slips = append(req.Slips, &api.RideSlip{
    SlipName: "foo",
    SlipExt: "bar",
    SlipLink: "https://whosebug.com",
})

或者给它分配一个literal值:

req := &api.StartAssignmentRequest{
    AdditionalComment: "AdditionalComment",
    Slips: []*api.RideSlip{
        {
            SlipName: "foo",
            SlipExt: "bar",
            SlipLink: "https://whosebug.com",
        },
    },
}