Protobuf 空字符串作为 ENUM 名称

Protobuf empty string as ENUM name

假设我有这个 Protocol Buffers 模式:

message Person{
  enum Height{
    UNDEFINED = 0;
    TALL = 1;
    SHORT = 2;
  }
  HEIGHT Height = 1;
}

是否可以使用空字符串 ("") 而不是 UNDEFINED

不,不是。枚举名称用于在大多数(所有?)语言中生成一个成员,该成员通常是一个标识符,因此需要一个名称。由于在某些语言(C++,咳咳)中如何为多个枚举定义成员解析,您 可能 还想为名称添加前缀,这样您就可以拥有多个 UNDEFINED.

就我个人而言,我更关心“高”、“矮”或“未定义”的高度选项有多模糊、过载和限制。