Maps

注:内容翻译自官网文档 Language Guide (proto3) 中的 Maps 一节

如果想常见一个关联的map作为数据定义的一部分, protocol buffers 提供方便的快捷语法:

map<key_type, value_type> map_field = N;

key_type可以是任意整型或者字符类型(因此, 除了floating point和bytes外任何简单类型). value_type可以是任意类型.

因此, 例如, 如果你想创建一个projects的map, 每个Project消息都关联到一个string key, 可以这样定义:

map<string, Project> projects = 3;

map字段不能重复. 另外注意map值的游历顺序是未定义的, 因此不能假设map元素保持特定顺序.

所有proto3支持的语言的map API现在已经可用. 在相关的API参考可以找到更多关于所选语言的map API.

向后兼容

map语法和下面的代码等同, 因此不支持map的protocol buffers实现依然可以处理数据:

message MapFieldEntry {
  key_type key = 1;
  value_type value = 2;
}

repeated MapFieldEntry map_field = N;

results matching ""

    No results matching ""