示例代码来自:https://developers.google.com/protocol-buffers/docs/cpptutorial
<span style="font-size:18px;">package tutorial; // 类似C++ 的namespace. tutorial::Person objPerson;
message Person { // 定义一个Person 的消息结构类。class Person;
// required 必须的, 字段限定标识
// optional 可有可无的, 字段限定标识
// repeated 可出现任意次的, 字段限定标识
required string name = 1; // 最后面的1 表示现有字段的序列号,在维护过程中不要修改它。你可以删除它。而且并非一定要从1开始,也并非一定要连接。
required int32 id = 2;
optional string email = 3; // 可以理解为动态数组
enum PhoneType {
MOBILE = 0;<span style="white-space:pre"> </span>// 这个后面的0, 1, 2 仅仅是枚举值,并非上面的字段序列号。但是却不能不定义,具体原因也不清楚。
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME]; // type 的默认值为HOME
}
repeated PhoneNumber phone = 4;
}
message AddressBook {
repeated Person person = 1;
}</span>