这是一个protobuf消息定义: message People { enum PeopleName { Alice = 100; Bob = 101; Cathy = 102; } optional PeopleName name = 1;} 我想根据我创建的一些字符串填充名称字段.例如.在golang: str := "Cathy" 如何填
message People { enum PeopleName { Alice = 100; Bob = 101; Cathy = 102; } optional PeopleName name = 1; }
我想根据我创建的一些字符串填充名称字段.例如.在golang:
str := "Cathy"
如何填充protobuf消息中的“名称”?
Go protobuf生成器将枚举名称映射到值(反之亦然).您可以使用此映射将字符串转换为枚举值:str := "Cathy" value, ok := People_PeopleName_value[str] if !ok { panic("invalid enum value") } var people People people.Name = People_PeopleName(value).Enum()