0

我想知道是否可以使用带有谷歌协议缓冲区的地图。我的 .proto 文件中目前有类似的内容

message MsgA
{
required string symbol = 1 ;
optional int32  freq = 2   [default = 0]; 
}

message MsgB
{

   //What should I do to make a map<int,MsgA>
}

我的问题是在 MsgB 中,我想创建一个类型为 map:: 关于如何完成此任务的任何建议?

4

1 回答 1

2

做这个:

message MapEntry
{
    required int32 mapKey  = 1;
    required MsgA mapValue = 2;
}

message MsgB
{
    repeated MapEntry = 1;
}

您将不得不编写自己的代码来将映射与 MsgB 进行转换,但这基本上应该是微不足道的。

于 2013-07-14T10:58:50.707 回答