proto3举例
Proto3他规定了怎么把数据拆解,又怎么在另一端把数据完好无损的拼回去
使用Proto3的第一步就是,创建一个.proto的文件,这就像是在定义个磨具
// 1. 版本声明:必须放在第一行,告诉编译器我要用 proto3 语法
syntax = "proto3";
// 2. 定义一个消息 (Message):你可以把它理解为 Python 的 Class 或 C 的 Struct
message Student {
// 类型 字段名 = 唯一编号;
string name = 1;
int32 age = 2;
bool is_male = 3;
}
这里的string这些就是类型,然后1 2这些并不是赋值,而是给字段贴的身份证号,在传输二进制数据时,由于没有变量名【为了省空间】程序只认这个编号 这个一旦定好,以后就不要改这个编号,否则新老版本会冲突
- 进阶语法--数组和枚举
syntax = "proto3";
message Student {
string name = 1;
int32 age = 2;
// --- 数组 (List) ---
// 关键词 repeated (重复的),表示这就变成了一个列表/数组
// 这里表示:一个学生可以有多门课程
repeated string courses = 3;
// --- 枚举 (Enum) ---
// 如果你的选项是固定的,比如年级,用 enum
enum Grade {
UNKNOWN = 0; // proto3 要求枚举的第一个必须是 0,作为默认值
FRESHMAN = 1;
SOPHOMORE = 2;
SENIOR = 3;
}
// 使用上面定义的枚举
Grade current_grade = 4;
}
repeated: 看到这个词,就把它当成 Python 的 list 或者 C++ 的 vector。 enum: 为了代码规范,避免出现 "Grade = 100" 这种离谱的数据。