2024-05-29 02:14:07 发布
网友
我还不喜欢protobuf,但我会试着提出一个问题。鉴于我有:
enum SourceType { WEB = 1; } message Message { optional SourceType source = 6; }
我有一个message实例,我想得到源的值,就像打印消息一样。但是做消息源给我密码。我只想从对象中获取值,而不是使用其他枚举/映射/常量。在最后一行中,我举了一个例子来说明如何达到期望值,但我正在寻找一种更优雅的方法。在
我相信使用EnumDescriptor是获得枚举值名称的唯一方法。当然,您可以围绕它编写一个helper函数,使其不那么冗长。在
EnumDescriptor
EnumTypeWrapper类有一个Name方法,该方法返回enmum值的名称。所以在本例中,从Message_pb2导入SourceType之后,SourceType.Name()将返回值的名称。在
EnumTypeWrapper
Name
enmum
Message_pb2
SourceType
SourceType.Name()
我相信使用
EnumDescriptor
是获得枚举值名称的唯一方法。当然,您可以围绕它编写一个helper函数,使其不那么冗长。在EnumTypeWrapper
类有一个Name
方法,该方法返回enmum
值的名称。所以在本例中,从Message_pb2
导入SourceType
之后,SourceType.Name()
将返回值的名称。在相关问题 更多 >
编程相关推荐