本文共 873 字,大约阅读时间需要 2 分钟。
编写Proto文件是定义程序中结构化数据的核心步骤。在协议缓存(Protocol Buffers, protobuf)中,结构化数据被称为Message。Proto文件类似于C或C++的数据定义,采用C风格的注释方式。
首先,定义包名和类名。例如:
syntax = "proto3";package tutorial;option java_package = "com.example.tutorial";option java_outer_classname = "AddressBookProtos";
接下来,定义message Person。每个字段需要明确其类型和是否为可选字段:
message Person { required string name = 1; required int32 id = 2; //唯一的个人ID号 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;} 字段的编号决定了其在协议缓存中的顺序。required字段必须存在,而optional字段则可以缺失。enum PhoneType定义了电话类型,可以用于 PhoneNumber消息中。
PhoneNumber消息包含number和type字段,其中type默认为HOME。如果需要,可以进一步扩展字段或添加新的枚举值。
通过Proto文件定义数据结构后,可以使用protoc-gen工具生成相应的数据类和访问方式。完整的地址书文件由单个Proto文件定义。
转载地址:http://zgxfk.baihongyu.com/