[Go] 使用protobuf进行序列化和反序列化
2024-09-01 23:53:47
先定义消息类型
orders.proto
syntax = "proto2";
package message;
message Orders {
required int32 order_id=;
required string title=;
}
在GOPATH创建目录和编译这个消息类型输出到该目录,包名是message
mkdir $GOPATH/src/message;protoc --go_out $GOPATH/src/message orders.proto
编写go文件进行序列化和反序列化刚才生成的包里的类型结构体数据
package main import "message" import "github.com/golang/protobuf/proto" import "fmt" func main() {
orders := &message.Orders{
OrderId: proto.Int32(),
Title: proto.String("第一个订单"),
}
//序列化成二进制数据
ordersBytes, _ := proto.Marshal(orders)
//反序列化二进制数据
twoOrders := &message.Orders{}
proto.Unmarshal(ordersBytes, twoOrders)
fmt.Println(twoOrders.GetTitle())
fmt.Println(twoOrders.GetOrderId()) }
最新文章
- 用脚本处理utf8的文本文件
- HTML语言的一些元素(五)
- UIScrollView的滚动位置设置
- 认识CoreData-多线程
- Delphi动态创建组件,并释放内存
- SQL UPDATE 经典
- 老司机实战Windows Server Docker:1 初体验之各种填坑
- Java(20)file i/o
- StringBuilder and StringBuffer
- js异步编程终级解决方案 async/await
- 【Teradata SQL】使用SQL将多个逗号分隔改为一个逗号分隔
- java内存模型与volatile变量与Atomic的compareAndSet
- luogu P4342 [IOI1998]Polygon
- Java学习---- 数组的引用传递
- 『记录』Android参考资料
- golang web框架 beego 学习 (一) 环境搭建
- 自然对数e(转)
- Linux学习8-Linux常用命令(4)
- 怎样让CodeBlocks支持C99
- 信息收集之zoomeye
热门文章
- WPF数据可视化-趋势图
- ElementUI项目请求SpringBoot后台项目时提示:Access to XMLHttpRequest at **from origin ** has been blocked by CORS policy
- elasticsearch对无意义的词进行屏蔽——停用词
- Symfonos:3 Vulnhub Walkthrough
- java核心API
- 短信相关的AT指令以及信令
- Go语言系列:(1)在VsCode中配置Go的开发环境
- [译]Vulkan教程(26)描述符池和set
- nginx如何实现负载均衡以及实现方式
- Linux下dos2unix命令将windows文件编码格式dos转换成Unix格式