Protocol buffers 如何编写protobuf的内联数组
我使用谷歌的ProtoBuf,设置了很多值,如下所示:Protocol buffers 如何编写protobuf的内联数组,protocol-buffers,Protocol Buffers,我使用谷歌的ProtoBuf,设置了很多值,如下所示: optional string force_sampling = 1; optional string status = 2; optional string host = 3; optional string server_addr = 4; optional string server_port = 5; optional string client_addr
optional string force_sampling = 1;
optional string status = 2;
optional string host = 3;
optional string server_addr = 4;
optional string server_port = 5;
optional string client_addr = 6;
optional string request = 7;
optional string msec = 8;
optional string request_time = 9;
optional string logid = 10;
optional string request_body = 11;
optional string response_body = 12;
optional string other = 100;
因此,当我为一条消息设置一个值时,我编写了许多结构,如下所示:
set_logid(); set_request_body(); set_other(); set_request_body(); etc.
我能有一个更简单的方法吗?
例如,类似于:
array way={"set_logid","set_other"}
for (;i = 0;i < len)
{
sample.way[i]()
}
array way={“set\u logid”,“set\u other”}
对于(;i=0;i
顺便说一下,
set\u logid
是内联的您可以使用Message::GetReflection()
函数,并使用它按字符串中给定的名称访问字段
文件如下:
然而,这将变得更慢、更复杂,因此可能不值得这么做