【问题标题】:how to override protobuf enums value如何覆盖 protobuf 枚举值
【发布时间】:2021-02-24 22:59:29
【问题描述】:

我使用 protoc 生成 proto 文件到 .go 文件。 在 Protocol Buffers 中,我想将枚举值与自定义值一起使用。

  enum Region {
North_America = 0; // I want to set it to be "North America" use space replace the _
Southr_America =1;
}

生成的golang要为

const (
    Region_North_America  Region = 0
    Region_Southr_America Region = 1
)

var Region_name = map[int32]string{
    0: "North_America",
    1: "Southr_America",
}

var Region_value = map[string]int32{
    "North_America":  0,
    "Southr_America": 1,
}

如何给枚举打一些标签,以便生成

var Region_name = map[int32]string{
    0: "North America",
    1: "Southr America",
}

var Region_value = map[string]int32{
    "North America":  0,
    "Southr America": 1,
}

【问题讨论】:

    标签: go proto


    【解决方案1】:

    这是做不到的;如果添加或删除一个元素,整个结构将被破坏。因此,您需要明确指定标识符 ... = 0;必填

    【讨论】:

    • 我想将枚举值设置为不带_的字符串,但枚举命名策略似乎不允许
    猜你喜欢
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多