在快速上⼿中,会编写第⼀版本的通讯录 1.0。在通讯录 1.0 版本中,将实现:
•
对⼀个联系⼈的信息使⽤ PB 进⾏序列化,并将结果打印出来。
•
对序列化后的内容使⽤ PB 进⾏反序列,解析出联系⼈信息并打印出来。
•
联系⼈包含以下信息: 姓名、年龄。
1.创建.proto文件
关于文件规范
创建 .proto ⽂件时,⽂件命名应该使⽤全⼩写字⺟命名,多个字⺟之间⽤
_
连接。 例如:
lower_snake_case.proto
。
•
书写 .proto ⽂件代码时,应使⽤ 2 个空格的缩进。
我们为通讯录 1.0 新建⽂件:
contacts.proto
指定 proto3 语法
Protocol Buffers 语⾔版本3,简称 proto3,是 .proto ⽂件最新的语法版本。proto3 简化了 ProtocolBuffers 语⾔,既易于使⽤,⼜可以在更⼴泛的编程语⾔中使⽤。它允许你使⽤ Java,C++,Python等多种语⾔⽣成 protocol buffer 代码。
在 .proto ⽂件中,要使⽤
syntax = "proto3";
来指定⽂件语法为 proto3,并且必须写在除去
注释内容的第⼀⾏。 如果没有指定,编译器会使⽤proto2语法。
在通讯录 1.0 的 contacts.proto ⽂件中,可以为⽂件指定 proto3 语法,内容如下
syntax = "proto3";
package 声明符
package 是⼀个可选的声明符,能表⽰ .proto ⽂件的命名空间,在项⽬中要有唯⼀性。它的作⽤是为了避免我们定义的消息出现冲突。
在通讯录 1.0 的 contacts.proto ⽂件中,可以声明其命名空间,内容如下:
syntax = "proto3";
package contacts;
定义消息(message)
消息(message): 要定义的结构化对象,我们可以给这个结构化对象中定义其对应的属性内容。