1.安装go的protobuf 直接运行
go get -u github.com/golang/protobuf/{protoc-gen-go,proto}
会在 $gopath/bin 目录生成 protoc-gen-go,这个就是go的protoc编译器
其他语言的protoc编译器:
下载地址
然后放在proto/bin目录下(ps:只是环境变量的问题,有时候$gopath会改变,发在一个固定位置比较方便)
文章图片
2.使用 创建 XX.proto 的文件
protobuf的语法十分简单
简单的例子:
syntax = "proto3";
//指定proto版本//hello结构体名字
message Hello {
//数据类型 字段名 = 1;
string Say = 1;
//repeated 数组
repeated LanguageType Language = 2;
}// enum枚举
enum LanguageType{
Chinese = 0;
English = 1;
}
需要注意的是:
1.枚举要从0开始
2.没有int,一般写int64
3.proto3开始有map<键,值>类型
3.编译 编译成普通go文件:
protoc --go_out=指定地址 XX.proto
编译成grpc的go文件:
protoc --go_out=plugins=grpc:指定地址 XX.proto
【golang|golang protobuf的安装和使用】这样就会在指定地址生成XX.pb.go 文件了
文章图片
ok,现在就可以使用你生成的proto文件了
推荐阅读
- 【golang】leetcode中级-字母异位词分组&无重复字符的最长子串
- 彻底理解Golang Map
- kratos线上开源年会它来啦~
- 深入浅出 Golang 资源嵌入方案(go-bindata篇)
- 深入浅出 Golang 资源嵌入方案(前篇)
- golang 经典案例总结
- Go实战 | 基于有向无环图的并发执行流的实现
- Golang 数组和切片
- Go JSON编码与解码()
- golang map基础知识