protoBuf
1.下载protobuf
https://github.com/protocolbuffers/protobuf/releases
下载后解压文件获取bin目录下的protoc.exe文件 复制到%gopath%\bin 文件夹下面
2.protoc-gen-go 安装
1.在 gopath 的src目录下 新建 google.golang.org\protobuf\ ,然后进入该路径执行
git clone https://github.com/protocolbuffers/protobuf-go
2.将protobuf-go目录下全部文件剪切 放到上面一层 也就是 和protobuf-go同级,删除protobuf-go,执行下面语句
go get google.golang.org/protobuf/cmd/protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go
测试
1.测试文件
syntax = "proto3";
package pd;
option go_package = ".;pd";
//定义枚举类型
enum Week{
Mondy = 0;//枚举 必须从0开始
Turesday = 1;
}
message Student{
int32 age=1;
string name=2;
People p=3;
repeated int32 score = 4;//数组
// 枚举
Week w = 5;
// 联合体
oneof data{
string teacher = 6;
string class = 7;
}
}
//消息体可以嵌套
message People{
int32 weight = 1;
}
2.生成指令
protoc pro.proto --go_out=.
protobuf注意事项
syntax = "proto3";
package pd;
//定义枚举类型
enum Week{
Mondy = 0;//枚举 必须从0开始
Turesday = 1;
}
message Student{
int32 age=1;
string name=2;
People p=3;
repeated int32 score = 4;//数组
// 枚举
Week w = 5;
// 联合体
oneof data{
string teacher = 6;
string class = 7;
}
}
//消息体可以嵌套
message People{
int32 weight = 1;
}
1.message 成员编号 可以不从0开始 但是不能重复
2.可以使用message 嵌套
3.定义数组 切片 使用repeated 关键字
4.可以使用枚举 enum
5.可以使用联合关键字oneof
编译protobuf
protoc --go_out=./ *proto