Go 使用protobuf

一、安装工作:
1、安装proto,在Windows上直接下载release版本(编译好的),protoc-3.3.0-win32.zip:
https://github.com/google/protobuf/releases/tag/v3.3.0
2、go版本的protobuf的下载地址:
https://github.com/golang/protobuf
3、将这个protobuf-master.zip加压后,改名为protobuf目录,并且在当前go工程的src目录下,新建一个子目录 github.com ,然后进入,再新建一个子目录golang
4、然后把刚才改名为protobuf的目录,全部拷贝到刚才的golang文件夹里面 ok!
5、在linux平台下,进入此protobuf文件夹,make 就OK了,会生成protoc可执行文件在gobin文件里里面,并且生成相关的.a文件在当前go工程的pkg文件夹里。
6、在windows平台下,我使用的是LiteIDE工具,先在proto文件夹上右键点击go install , 然后在protoc-gen-go文件夹上右键点击go install。在当前go工程的bin文件夹下会生成protoc-gen-go可执行文件。
7、进入自定义的.proto文件所在的文件夹,输入命令 protoc –go_out=./ .proto,则在当前文件夹下生成.go文件。
二、使用规则:
1、在使用之前,我们先了解一下每个 Protobuf 消息在 Golang 中有哪一些可用的接口:

2、每一个 Protobuf 消息对应一个 Golang 结构体
3、消息中域名字为 camel_case 在对应的 Golang 结构体中为 CamelCase
4、消息对应的 Golang 结构体中不存在 setter 方法,只需要直接对结构体赋值即可,赋值时可能使用到一些辅助函数,例如:
msg.Foo = proto.String(“hello”)
5、消息对应的 Golang 结构体中存在 getter 方法,用于返回域的值,如果域未设置值,则返回一个默认值
6、消息中非 repeated 的域都被实现为一个指针,指针为 nil 时表示域未设置
7、消息中 repeated 的域被实现为 slice
访问枚举值时,使用“枚举类型名_枚举名”的格式(更多内容可以直接阅读生成的源码)
8、使用 proto.Marshal 函数进行编码,使用 proto.Unmarshal 函数进行解码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值