syntax = "proto2";
message article
optional articletype article_type = 5 [default = novel];
message author
optional author author = 6;
repeated int32 article_numberofwords = 7 [packed=true];
//對於基本數值型別,由於歷史原因,不能被
protobuf
更有效的
encode
。所以在新的**中使用
packed=true
可以更加有效率的
encode
。注意packed
只能用於
repeated
數值型別的字段。不能用於
string
型別的字段
reserved 9, 10, 12 to 15;
//保留相關編號標籤,主要是防止在更新
proto
檔案刪除了某些字段,而未來的使用者定義新的字段時重新使用了該編號標籤。這會引起一些問題在獲取老版本的訊息時,譬如資料衝突,隱藏的一些
bug等。所以一定要用
reserved
標記這些編號標籤以保證不會被使用
extensions 100 to 1000;
//當我們需要對訊息進行擴充套件的時候,我們可以用
extensions
關鍵字來定義一些編號標籤供第三方擴充套件。這樣的好處是不需要修改原來的訊息格式。 }
extend article
message other
}來自火星的:
pb學習筆記一
1,引用變數遇到變數名相符的變數,按照如下的順序查詢引用的變數 local shared global instance 如果存在相同名稱local,shared和global型變數,在引用變數時,local,shared型會被先引用,global會被覆蓋,若要引用全域性變數,在變數名前加全域性操作...
PB學習中遇到的函式
1 getcurrentdirectory 2 fileopen filename 引數filename string型別,指定要開啟檔案的名稱,其中可以包含路徑 引數filemode filemode列舉型別,可選項,指定檔案開啟方式。有效取值為 linemode 預設值,行模式 streammo...
建模學習例子
在專案協作中,建模工具起到了非同尋常的作用。可以使專案管理員確定專案範圍,使分析員了解系統提供的功能,使開發員了解系統的邏輯流程及系統中物件之間的訊息轉遞等等。就使得專案管理員,系統分析員,開發員有必要掌握一種建模工具。如rose,powerdesiger,ea,viso等。rose是我參加工作後,...