- 在使用protobuf定义数据结构之前,首先使用:syntax = “proto2”或”proto3”来定义protobuf的版本。此处使用protobuf2作为说明,protobuf3y与protobuf2有一些不同,取消了一些关键字的使用,详细见https://developers.google.com/protocol-buffers/docs/cpptutorial
- 定义数据结构之前,使用生成的类将放在与package name相关的namesapce里面,该namespace的名字即为package name。
- message关键字是一个包含一组类型字段的聚合。许多标准的数据类型都可作为字段类型:bool,int32,float,double,string。你可以在你的message中添加其他的message,也可以添加枚举类型的字段。
还有关键字required、optimal以及repeated,详细使用参见官网说明。
示例如下:
syntax = "proto2";
package tutorial;
message Person {
required string name = 1;
required int32 id = 2; // Unique ID number for this person.
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
// Our address book file is just one of these.
message AddressBook {
repeated Person person = 1;
}
参见:https://developers.google.com/protocol-buffers/docs/cpptutorial