我想知道是否可以使用带有Google协议缓冲区的地图。
我的.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中,我想创建一个将是地图的类型:
关于如何实现此目标的任何建议?

最佳答案

做这个:

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

message MsgB
{
    repeated MapEntry = 1;
}


您将必须编写自己的代码以将地图与MsgB之间来回转换,但这基本上并不重要。

10-04 14:26