我想知道是否可以使用 Google Protocol Buffers 的枚举常量作为其他消息的字段编号,例如
enum Code {
FOO = 100;
BAR = 101;
}
message Message {
required string foo = FOO;
}
此代码不起作用,因为
FOO
的类型是 enum Code
并且只能使用数字作为字段编号。我正在尝试构建这样的多态消息定义 animal example , 定义
Cat = 1;
在 enum Type
和 required Cat animal = 100;
作为唯一的分机号码。我认为这样做会很好
message Message {
required string foo = FOO.value;
}
,这样我就可以在不引入另一个魔数(Magic Number)的情况下确保扩展字段号的唯一性。
所以问题是:是否可以在 Protocol Buffer 语言中引用枚举的整数值?
最佳答案
不,没有办法做到这一点。对不起。
顺便说一句,相同枚举类型的两个枚举实际上可以具有相同的数值,因此在枚举中定义这些值实际上并不能确保唯一性。
关于enums - 使用 protobuf 枚举值作为字段编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22447776/