1. 程式人生 > >protobuf 一個.proto 檔案的簡單講解

protobuf 一個.proto 檔案的簡單講解

<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>