go语言序列化对象为二进制

body100123 · · 6731 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

package main import (	"bytes"	"encoding/binary"	"fmt" ) type Register struct {	ACTION int32	SID int32 } func ExampleWrite() []byte {	buf := new(bytes.Buffer)	var info Register	info.ACTION = 20004	info.SID = 6	err := binary.Write(buf, binary.LittleEndian, info)	if err != nil {	fmt.Println("binary.Write failed:", err)	}	fmt.Printf("% x\n", buf.Bytes())	return buf.Bytes() } func ExampleRead(b []byte) {	var info Register	buf := bytes.NewBuffer(b)	err := binary.Read(buf, binary.LittleEndian, &info)	if err != nil {	fmt.Println("binary.Read failed:", err)	}	fmt.Print(info)	// Output: 3.141592653589793 } func main() {	buf := ExampleWrite()	ExampleRead(buf) } 

go语言标准库除了提供了binary的之外,还提供了json,gob以及base32,base64的序列化

对于protocol buff协议的序列化,可以参见goprotobuf


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:body100123

查看原文:go语言序列化对象为二进制

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

6731 次点击  
加入收藏 微博
1 回复  |  直到 2025-05-12 09:02:29
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传