繁体   English   中英

使用protobuf枚举值作为字段编号

[英]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 Typerequired Cat animal = 100; 作为唯一的分机号码。

我觉得这样做很好

message Message {
  required string foo = FOO.value;
}

,这样我就可以确保扩展字段编号的唯一性,而不会引入另一个幻数。

所以问题是:是否可以在协议缓冲区语言中引用枚举的整数值?

不,没有办法做到这一点。 抱歉。

顺便说一下,两个相同枚举类型的枚举实际上可以具有相同的数值,因此在枚举中定义这些值实际上并不能确保唯一性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM