golang protobuf的安装/使用以及注意事项

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 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

托马斯的冰淇淋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值