protobuf新增keyvalue
时间: 2023-08-22 13:08:15 浏览: 104
在Protobuf中,新增的键值对可以通过添加新的字段来实现。当在proto文件中添加新的字段后,旧的程序仍然可以兼容并继续使用,因为解析器能够跳过无法识别的字段。在序列化后的二进制消息中,每个字段的序号作为key,用于标识该字段的位置。这个key实际上由两部分组成:字段的编号和wire type。wire type表示value的长度。在多数实现中,这个key也被称为tag。新增的键值对可以用于不同的数据类型,如int32、int64、uint32、uint64、sint32、sint64、bool、enum等。此外,还可以使用fixed64、sfixed64、double、string、bytes、embedded messages等。对于有符号的整数类型(sint32、sint64),Protobuf使用ZigZag编码来生成Varint值,以便更高效地表示负数。所以,通过为proto文件添加新的字段,即可实现新增的键值对。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [protobuf 编码](https://blog.csdn.net/WB8933/article/details/101761681)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文