我想知道是否可以将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;
}
,这样我就可以确保扩展字段编号的唯一性,而不会引入另一个幻数。
所以问题是:是否可以在协议缓冲区语言中引用枚举的整数值?
答案 0 :(得分:3)
不,没有办法做到这一点。遗憾。
BTW,两个相同枚举类型的枚举实际上可以具有相同的数值,因此在枚举中定义这些值实际上并不能确保唯一性。