下面是一个protobuf消息定义:
message People { enum PeopleName { Alice = 100; Bob = 101; Cathy = 102; } optional PeopleName name = 1; }
我想根据我创建的一些字符串填充名称字段。例如,在golang中:
str := "Cathy"
如何在protobuf消息中填充“name”?
s4n0splo1#
Go语言的protobuf生成器发出一个枚举名到值的Map(反之亦然)。你可以使用这个Map将你的字符串转换成枚举值:
str := "Cathy" value, ok := People_PeopleName_value[str] if !ok { panic("invalid enum value") } var people People people.Name = People_PeopleName(value)
plicqrtu2#
使用proto3,从枚举值到字符串,可以直接用途:
name.String()
2条答案
按热度按时间s4n0splo1#
Go语言的protobuf生成器发出一个枚举名到值的Map(反之亦然)。你可以使用这个Map将你的字符串转换成枚举值:
plicqrtu2#
使用proto3,从枚举值到字符串,可以直接用途: