簡體   English   中英

protobuf 消息字段 id 和字段順序是什么關系?

[英]What is the relation of protobuf message field id and field order?

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

message HelloReply {
  string message = 1;
  string personalized_message = 2;
}
message HelloReply {
  string personalized_message = 2;
  string message = 1;
}

在任何情況下,順序是否與兼容性有關?

文本順序在很大程度上無關緊要,盡管它可能會影響某些代碼生成工具 - 但大多數語言並不關心聲明順序,因此即使這樣:也沒關系。 這些字段在語義上仍然是等價的——數字與現有的含義(名稱)和類型相匹配。 數字是識別字段的決定性特征。

在協議層面:

  • 解析器必須允許任何順序的字段
  • 序列化程序應該(但不是必須)以數字字段的升序寫入字段

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM