Protobuf“字段1”的意义是啥?

Posted

技术标签:

【中文标题】Protobuf“字段1”的意义是啥?【英文标题】:What is the significance of Protobuf "field 1"?Protobuf“字段1”的意义是什么? 【发布时间】:2016-05-23 17:12:28 【问题描述】:

我想弄清楚如何在 Protobuf 中编码一个 byte[][] 锯齿状数组。

在我的搜索中,我无法看到如何实现这一点,但我确实看到 hints of a future feature 实现在字段 1 中对此进行了编码。

字段 1 有什么好处,它如何适用于 Protobuf?

【问题讨论】:

【参考方案1】:

字段 1 没有特殊意义,只是它是第一个字段,因此是单字段消息格式中最明显的字段编号。在您链接的答案中,Marc 似乎在说他正在考虑添加对“锯齿状数组”的内置支持,该数组将被编码为消息列表,其中每条消息都包含另一个列表。内部列表的字段编号为 1 仅仅是因为这是显而易见的数字选择。因此,如果您今天使用字段编号 1 为内部列表手动定义此类类型,您稍后将能够切换到 Marc 的内置类型,而不会破坏向后兼容性。

【讨论】:

以上是关于Protobuf“字段1”的意义是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Protobuf使用规范分享

用 Maven 实现一个 protobuf 的 Java 例子

protobuf.net 和条件序列化

在Creator3D中使用protobuf的快速解决方法!

protobuf 中的“1”、“2”、“3”是啥意思?

将ProtoA导入protoB