Proto3 拆分 Dictionary<string, List<Dictionary<int, int>>> 类型为多个 Message
以下是将 Dictionary<string, List<Dictionary<int, int>>> 类型拆分成多个 message 的示例:
syntax = 'proto3';
message KeyValue {
string key = 1;
int32 value = 2;
}
message InnerMap {
repeated KeyValue key_values = 1;
}
message OuterMap {
string key = 1;
repeated InnerMap inner_maps = 2;
}
在上面的示例中,我们定义了三个 message:
- KeyValue:用于表示一个键值对。
- InnerMap:用于表示一个内部字典,其中每个条目都是 KeyValue 的实例。
- OuterMap:用于表示一个外部字典,其中每个条目都是一个字符串键和 InnerMap 的列表。
使用上面的 message 定义,我们可以将 Dictionary<string, List<Dictionary<int, int>>> 类型编码为 OuterMap 的实例。例如,以下是一个包含两个条目的字典的示例编码:
OuterMap {
key: 'foo'
inner_maps {
key_values {
key: '1'
value: 10
}
key_values {
key: '2'
value: 20
}
}
inner_maps {
key_values {
key: '3'
value: 30
}
key_values {
key: '4'
value: 40
}
}
}
在上面的示例中,我们使用两个 InnerMap 实例来表示两个列表,每个列表都是一个包含两个 KeyValue 实例的内部字典。
原文地址: https://www.cveoy.top/t/topic/nwFp 著作权归作者所有。请勿转载和采集!