[英]Using protobuf enum value as a field number
我想知道是否可以使用Google Protocol Buffers的枚举常量作为其他消息的字段数,例如
enum Code {
FOO = 100;
BAR = 101;
}
message Message {
required string foo = FOO;
}
此代码不起作用,因为FOO
的类型是enum Code
,只有一个数字可以用作字段编号。
我正在尝试构建多态消息定义,如动物示例 ,定义Cat = 1;
在enum Type
和required Cat animal = 100;
作为唯一的分机号码。
我觉得这样做很好
message Message {
required string foo = FOO.value;
}
,这样我就可以确保扩展字段编号的唯一性,而不会引入另一个幻数。
所以问题是:是否可以在协议缓冲区语言中引用枚举的整数值?
不,没有办法做到这一点。 抱歉。
顺便说一下,两个相同枚举类型的枚举实际上可以具有相同的数值,因此在枚举中定义这些值实际上并不能确保唯一性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.