message各字段的使用方式:
optional类型
repeated类型
message Request {
message FieldInfo {
optional int64 request_type = 1; //请求返回的类型
repeated int32 field = 2;
}
repeated FieldInfo sku_field_info = 7;
}
使用:
::xxx::FieldInfo* field_info =
request->add_sku_field_info(); // repeated类型可以用add_之后,调用muteable_
field_info->set_request_type(123); // optional类型使用set_
const std::vector<int> & vec = nums; // 一个数组
field_info->mutable_field()->Reserve(vec.size()); // 使用·mutable_ 先开辟内存,并使用Reserve()预留位置
for (size_t i = 0; i < vec.size(); i++) {
field_info->add_field(vec[i]); // 逐个添加元素,此时reserve之后并不能按下标访问。
}