文章目录
字段内容的定义
//文件名:addressbook.proto
syntax = "proto2";//proto版本
//.proto文件新增一个可选的package声明符,用来防止不同的消息类型有命名冲突。
//包的声明符会根据使用语言的不同影响生成的代码。对于C++,产生的类会被包装在C++的命名空间中。
package tutorial;package声明符
message Person {
required string name = 1;//姓名,= 1 二进制编码中使用的唯一 “标记”
required int32 id = 2;//ID
optional string email = 3;//email
enum PhoneType {//枚举消息类型
MOBILE = 0;//proto3版本中,首成员必须为0,成员不应有相同的值
HOME = 1;
WORK = 2;
}
//
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phones = 4;//phones为数组
}
message AddressBook {
repeated Person people = 1;
}
修饰符
-
required 必须提供该字段的值,否则消息会被认为是”未初始化的“
-
optional
表示属性值为可选项,不指定