10

考虑以下消息。

message example { 
   repeated string text; 
}

假设在 C++ 中,我有一个插入到示例文本字段中的字符串列表:

exemple aMessage; 
std::list<std::string> aList = ... ;
for (std::string anStr : aList) 
{
    aMessage.add_text(anStr);
}

稍后,如果我访问消息的文本,该字段的排序方式是否与我的列表相同?当我将它序列化并发送到某个地方时呢?

订单会保持不变吗?

4

1 回答 1

12

是的,重复字段保留项目的顺序。

来自Google 的 Protocol Buffers 编码规范

解析时会保留元素相对于彼此的顺序,尽管相对于其他字段的顺序会丢失。

于 2019-03-08T18:36:04.633 回答