我想在协议缓冲区消息中添加字符串数组,这是我无法做到的。我写的如下
repeated string data = 1[packed=true];
我收到以下错误:
[packed = true] can only be specified for repeated primitive fields.
我能够为具有相同语法的int数组做到这一点。我很困惑为什么字符串被认为是非原始类型。 有人可以帮我吗? 谢谢!!
答案 0 :(得分:3)
请参阅Protobuf Documentation的“指定字段规则”部分。基本上,只包装 对数字字段有意义。
保留繁荣的报价:
由于历史原因,基本数字类型的重复字段的编码效率不高。新代码应该使用特殊选项[packed = true]来获得更有效的编码。