gpt4 book ai didi

protocol-buffers - Protocol Buffer : does changing field name break the message?

转载 作者:行者123 更新时间:2023-12-03 11:00:43 31 4
gpt4 key购买 nike

使用 Protocol Buffer ,更改消息的字段名称是否仍然让它向后兼容?我找不到任何引用。

例如:原始消息

message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}

改成:
message Person {
required string full_name = 1;
required int32 id = 2;
optional string email = 3;
}

最佳答案

更改字段名称不会影响 protobuf 编码或应用程序之间的兼容性,这些应用程序使用的 proto 定义仅因字段名称而异。
二进制 protobuf 编码基于标签号,所以这是您需要保留的。
您甚至可以在一定程度上更改字段类型(查看 https://developers.google.com/protocol-buffers/docs/encoding#structure 处的类型表),前提是其连线类型保持不变,但这需要额外考虑,例如,是否更改 uint32uint64从您的应用程序代码的角度来看是安全的,并且对于“更好”的某些定义,比简单地定义一个新字段要好。
如果您使用该功能,更改字段名称将影响 json 表示。

关于protocol-buffers - Protocol Buffer : does changing field name break the message?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45431685/

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