go使用gob编码解码
1. gob是go语言内置的编码包
2. 它可以对任意数据类型进行编码和解码
3. 编码时,先要创建编码器,编码器进行编码
4. 解码时,先要创建解码器,解码器进行解码
package main import ( "encoding/gob" "bytes" "log" "fmt" ) //1. gob是go语言内置的编码包 //2. 它可以对任意数据类型进行编码和解码 //3. 编码时,先要创建编码器,编码器进行编码 //4. 解码时,先要创建解码器,解码器进行解码 type Person struct { Name string Age uint64 } func main() { Jim := Person{ Name: "Jim", Age: 19, } var buffer bytes.Buffer //定义编码器 encoder := gob.NewEncoder(&buffer) //编码器对结构进行编码,一定要进行校验 err := encoder.Encode(&Jim) if err != nil { log.Panic(err) } fmt.Printf("编码后的数据: %x\n", buffer.Bytes()) //......传输 //解码,将字节流转换Person结构 //4. 解码时,先要创建解码器,解码器进行解码 var p1 Person //创建解码器 decoder := gob.NewDecoder(bytes.NewReader(buffer.Bytes())) err = decoder.Decode(&p1) if err != nil { log.Panic(err) } fmt.Printf("解码后的数据: %v\n", p1) }