我试图理解这里的协议缓冲区是示例,我无法理解的是字节在后续消息中的使用方式。我不知道这个号码
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 比更高的编号需要少一个字节来编码,因此作为一种优化,您可以决定将这些标签用于常用或重复的元素,而将标签 16 和更高的标签用于不太常用的可选元素。