gpt4 book ai didi

protocol-buffers - protobuf 数据类型可以升级吗?

转载 作者:行者123 更新时间:2023-12-04 01:42:07 25 4
gpt4 key购买 nike

我是 Protobuf 的新手,所以不知道这是否可行。如果在 proto 文件中我有一个 fixed32 数据类型,我可以将它升级到 fixed64 这样所有 existing fixed32也可以读取值(即向后兼容性)?

如果没有,执行此类升级的最佳方法是什么?

最佳答案

tl;dr 是的,但不是您的确切类型。

您可以在 varint 编码类型之间自由移动,因为它们在线路上都使用完全相同的编码。

来自 documentation :

int32, uint32, int64, uint64, and bool are all compatible – this means you can change a field from one of these types to another without breaking forwards- or backwards-compatibility. If a number is parsed from the wire which doesn't fit in the corresponding type, you will get the same effect as if you had cast the number to that type in C++ (e.g. if a 64-bit number is read as an int32, it will be truncated to 32 bits).

遗憾的是,这不适用于 fixed32 (仅与 sfixed32 兼容)和 fixed64 (仅与 sfixed64 兼容)。

如果您已经有大量数据使用 fixed32字段,您必须创建一个新的 int64字段并逐渐从现有字段过渡到新字段(新代码读取两个字段但仅填充新字段)。

关于protocol-buffers - protobuf 数据类型可以升级吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46104228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com