drd*_*dot 6 go protocol-buffers
这是一个protobuf消息定义:
message People {
enum PeopleName {
Alice = 100;
Bob = 101;
Cathy = 102;
}
optional PeopleName name = 1;
}
Run Code Online (Sandbox Code Playgroud)
我想根据我创建的一些字符串填充名称字段.例如在golang:
str := "Cathy"
Run Code Online (Sandbox Code Playgroud)
如何填充protobuf消息中的"名称"?
Tim*_*per 14
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()
Run Code Online (Sandbox Code Playgroud)