Сохраняют ли повторяющиеся поля в протобуферах порядок их вставки? - PullRequest
0 голосов
/ 08 марта 2019

Рассмотрим следующее сообщение.

message example { 
   repeated string text; 
}

Допустим, в C ++ у меня есть список строк, которые я вставляю в текстовое поле примера:

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

Позже, еслиЯ получаю доступ к тексту моего сообщения. Будет ли это поле упорядочено так же, как мой список?А как насчет того, чтобы сериализовать его и отправить куда-нибудь?

Останется ли порядок постоянным?

1 Ответ

1 голос
/ 08 марта 2019

Да, повторяющиеся поля сохраняют порядок элементов.

С Спецификация кодирования буферов протокола Google :

Порядок элементов относительно каждогоостальное сохраняется при разборе, хотя упорядочение по другим полям теряется.

...