protobuf 學習 收藏的文章

Protobuf數據格式解析:

packed repeated與repeated的區別在於編碼方式不一樣,repeated將多個屬性類型與值分開存儲。而packed repeated採用Length-delimited方式。

proto3的repeated默認就是使用packed這種方式來存儲,(proto2與proto3區別在於.proto的語法)。

 

http://blog.csdn.net/zhaozheng7758/article/details/6749000:

[packed =false / true]->採用更緊湊的編碼方式

Package: 命名空間

[deprecated =false/true]->標識該域是否已經被棄用 如:optional int32 old_field = 6[deprecated=true]; 該域已棄用

 

repeated字段,可以包含0~N個相同的內容,所以一般這樣用,加個bool表明它到底是0個沒數據還是大於0個:

message MSG1

{

   repeated fixed32 data = 1;

   optional bool include_data = 2

當 include_data = true 時,表示要修改data字段,此時如果data字段包含0個元素則是清空。

如果include_data = false ,時表示對data字段不做任何改變,此時data字段包含0個元素或者多個元素在業務邏輯上都應該被忽略。

http://www.xuebuyuan.com/1674264.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章