protobuf 消息字段 id 和字段顺序的关系是什么?

我想从 protobuf 和序列化/反序列化的角度了解下面的消息是否兼容。


message HelloReply {

  string message = 1;

  string personalized_message = 2;

}

message HelloReply {

  string personalized_message = 2;

  string message = 1;

}

在任何情况下,顺序对兼容性是否重要?


幕布斯7119047
浏览 59回答 1
1回答

牧羊人nacy

文本顺序在很大程度上是无关紧要的,尽管它可能会影响一些代码生成工具——但大多数语言并不关心声明顺序,所以即使这样:也没关系。这些字段仍然在语义上等价地定义 - 数字与现有含义(名称)和类型匹配。数字是识别字段的决定性特征。在协议级别:解析器必须允许任何顺序的字段序列化程序应该(但不是必须)按数字字段升序写入字段
打开App,查看更多内容
随时随地看视频慕课网APP