protobuf使用笔记

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之后并不能按下标访问。
      }

你可能感兴趣的:(实习经历+面试,笔记,基础知识_网络传输,rpc)