在协议缓冲区中添加字符串数组

Sri*_*nth 3 protocol-buffers

我想在协议缓冲区消息中添加字符串数组,但我不能这样做。我写如下

repeated string data = 1[packed=true];
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

[packed = true] can only be specified for repeated primitive fields.
Run Code Online (Sandbox Code Playgroud)

我可以使用相同的语法对int数组执行此操作。我很困惑为什么将字符串视为非原始类型。有人可以帮我吗?谢谢 !!

Chr*_*man 5

请参阅Protobuf文档的 “指定字段规则”部分。本质上,仅对数字字段有意义。

保持繁荣报价:

由于历史原因,对基本数字类型的重复字段进行的编码效率不高。新代码应使用特殊选项[packed = true]以获得更有效的编码。

  • 只需删除`[packed = true]`。另外,请阅读错误消息之间的文档,并且不要认为这是一个问题。 (2认同)