簡體   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