如何在谷歌协议缓冲区中根据需要定义重复字段?

Posted

技术标签:

【中文标题】如何在谷歌协议缓冲区中根据需要定义重复字段?【英文标题】:how to define repeated field as required in google protocol buffer? 【发布时间】:2015-07-02 06:00:31 【问题描述】:

如何根据 Google 协议缓冲区的要求定义重复字段?我有一个修饰符重复的字段(重复 int32 A )。我如何将所需的修饰符添加到该字段?事实上,我想同时拥有修饰符(必需和重复)。

【问题讨论】:

【参考方案1】:

抱歉,没有办法将重复的字段标记为“必填”。

事实上,required 本身被广泛认为是一个错误功能,并在 Protobuf 3.0 中被逐步淘汰。有关为什么会这样的详细解释/咆哮,请参阅:

https://capnproto.org/faq.html#how-do-i-make-a-field-required-like-in-protocol-buffers

(这是 Cap'n Proto 网站的链接,它是 Protobufs 的竞争对手,但其作者(即我)也是 Protobuf v2 的主要作者。)

【讨论】:

以上是关于如何在谷歌协议缓冲区中根据需要定义重复字段?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌协议缓冲区是不是支持序列化前的大小计算?

从 Google 协议缓冲区中的重复字符串(列表)中删除一个随机值

提升序列化与谷歌协议缓冲区? [关闭]

如何解码二进制/原始谷歌 protobuf 数据

无法在 Mac 上构建谷歌协议缓冲区教程

如何通过套接字发送.proto(协议缓冲区)中定义的类