zoukankan      html  css  js  c++  java
  • 5.10 gob序列化

    package main
    
    import (
    	"bytes"
    	"encoding/gob"
    	"fmt"
    )
    
    type User struct {
    	FirstName string
    	LastName  string
    	Age       int
    	Active    bool
    }
    
    func (u User) String() string {
    	return fmt.Sprintf(`{"FirstName":%s,"LastName":%s,"Age":%d,"Active":%v }`,
    		u.FirstName, u.LastName, u.Age, u.Active)
    }
    
    type SimpleUser struct {
    	FirstName string
    	LastName  string
    }
    
    func (u SimpleUser) String() string {
    	return fmt.Sprintf(`{"FirstName":%s,"LastName":%s}`,
    		u.FirstName, u.LastName)
    }
    
    func main() {
    
    	var buff bytes.Buffer
    
    	// Encode value
    	enc := gob.NewEncoder(&buff)
    	user := User{
    		"Radomir",
    		"Sohlich",
    		30,
    		true,
    	}
    	enc.Encode(user)
    	fmt.Printf("%X
    ", buff.Bytes())
    
    	// Decode value
    	out := User{}
    	dec := gob.NewDecoder(&buff)
    	dec.Decode(&out)
    	fmt.Println(out.String())
    
    	enc.Encode(user)
    	out2 := SimpleUser{}
    	dec.Decode(&out2)
    	fmt.Println(out2.String())
    
    }
    
    /*
    40FF81030101045573657201FF82000104010946697273744E616D65010C0001084C6173744E616D65010C0001034167650104000106416374697665010200000019FF8201075261646F6D69720107536F686C696368013C010100
    {"FirstName":Radomir,"LastName":Sohlich,"Age":30,"Active":true }
    {"FirstName":Radomir,"LastName":Sohlich}
    
    */
    
    
  • 相关阅读:
    942. 增减字符串匹配
    116. 填充每个节点的下一个右侧节点指针
    剑指 Offer 35. 复杂链表的复制
    实验排序
    543. 二叉树的直径
    面试题 08.08. 有重复字符串的排列组合
    微信开发者工具
    打印机链接
    图片上下左右居中
    学习 视频网站
  • 原文地址:https://www.cnblogs.com/zrdpy/p/8620994.html
Copyright © 2011-2022 走看看