ここでプロトコル バッファを理解しようとしていますが、サンプルです。理解できないのは、次のメッセージでバイトがどのように使用されているかです。1 2 3
この番号が何に使われているかわかりません
。
message Point {
required int32 x = 1;
required int32 y = 2;
optional string label = 3;
}
message Line {
required Point start = 1;
required Point end = 2;
optional string label = 3;
}
message Polyline {
repeated Point point = 1;
optional string label = 2;
}
Google protobuf で次の段落を読みましたが、ここで言われていることを理解できません。情報を保存するためにバイトがどのように使用されているかを理解するのに誰か助けてもらえますか?
各要素の「= 1」、「= 2」マーカーは、フィールドがバイナリ エンコーディングで使用する一意の「タグ」を識別します。タグ番号 1 ~ 15 は、より大きな番号よりもエンコードに 1 バイト少ない必要があるため、最適化として、一般的に使用される要素または繰り返される要素にこれらのタグを使用することを決定し、あまり一般的に使用されないオプションの要素にはタグ 16 以降を残すことができます。