protobuf 一個.proto 檔案的簡單講解
阿新 • • 發佈:2019-01-30
<span style="font-size:18px;">package tutorial; // 類似C++ 的namespace. tutorial::Person objPerson; message Person { // 定義一個Person 的訊息結構類。class Person; // required 必須的, 欄位限定標識 // optional 可有可無的, 欄位限定標識 // repeated 可出現任意次的, 欄位限定標識 required string name = 1; // 最後面的1 表示現有欄位的序列號,在維護過程中不要修改它。你可以刪除它。而且並非一定要從1開始,也並非一定要連線。 required int32 id = 2; optional string email = 3; // 可以理解為動態陣列 enum PhoneType { MOBILE = 0;<span style="white-space:pre"> </span>// 這個後面的0, 1, 2 僅僅是列舉值,並非上面的欄位序列號。但是卻不能不定義,具體原因也不清楚。 HOME = 1; WORK = 2; } message PhoneNumber { required string number = 1; optional PhoneType type = 2 [default = HOME]; // type 的預設值為HOME } repeated PhoneNumber phone = 4; } message AddressBook { repeated Person person = 1; }</span>