我使用protobuf的枚举来共享C++应用程序和Java应用程序之间的值.这样,int
在语言之间共享相同()值,并且值在编译时可用.通过以某种方式在公共.proto
文件中定义它,我可以用字符串做类似的事情吗?
我刚刚问了 这个问题,并决定在我的协议缓冲区中编写枚举值的扩展。然而,即使使用这个简单的 .proto 文件,我在实际读取值时也遇到了极其困难的情况:
package test;
import "google/protobuf/descriptor.proto";
extend google.protobuf.EnumValueOptions {
optional string abbr = 54321;
}
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType { MOBILE = 0 [(abbr)="Mobile ph"]; HOME = 1 [(abbr)="HomePhone"]; WORK = 2 [(abbr)="Work number"]; }
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
message AddressBook { …
Run Code Online (Sandbox Code Playgroud)