zoukankan      html  css  js  c++  java
  • 基础语法-结构体使用(7)

    总体

    代码

    package main
    
    import (
    	"fmt"
    )
    
    type Person struct {
    	Name string
    	Age int
    }
    
    func main() {
    	var p1 Person
    	p1.Name = "Tom"
    	p1.Age  = 30
    	fmt.Println("p1 =", p1)
    
    	var p2 = Person{Name:"Burke", Age:31}
    	fmt.Println("p2 =", p2)
    
    	p3 := Person{Name:"Aaron", Age:32}
    	fmt.Println("p2 =", p3)
    
    	//匿名结构体
    	p4 := struct {
    		Name string
    		Age int
    	} {Name:"匿名", Age:33}
    	fmt.Println("p4 =", p4)
    }
    
    

    输出

    p1 = {Tom 30}
    p2 = {Burke 31}
    p2 = {Aaron 32}
    p4 = {匿名 33}
    
    

    序列化

    package main
    
    import (
    	"encoding/json"
    	"fmt"
    )
    
    type Result struct {
    	Code    int    `json:"code"`
    	Message string `json:"msg"`
    }
    
    func main() {
    	var res Result
    	res.Code    = 200
    	res.Message = "success"
    
    	//序列化
    	jsons, errs := json.Marshal(res)
    	if errs != nil {
    		fmt.Println("json marshal error:", errs)
    	}
    	fmt.Println("json data :", string(jsons))
    
    	//反序列化
    	var res2 Result
    	errs = json.Unmarshal(jsons, &res2)
    	if errs != nil {
    		fmt.Println("json unmarshal error:", errs)
    	}
    	fmt.Println("res2 :", res2)
    }
    
    

    输出

    json data : {"code":200,"msg":"success"}
    res2 : {200 success}
    

    引用类型使用

    package main
    
    import (
    	"encoding/json"
    	"fmt"
    )
    
    type Result struct {
    	Code    int    `json:"code"`
    	Message string `json:"msg"`
    }
    
    func main() {
    	var res Result
    	res.Code    = 200
    	res.Message = "success"
    	toJson(&res)
    	setData(&res)
    	toJson(&res)
    }
    
    func setData (res *Result) {
    	res.Code    = 500
    	res.Message = "fail"
    }
    
    func toJson (res *Result) {
    	jsons, errs := json.Marshal(res)
    	if errs != nil {
    		fmt.Println("json marshal error:", errs)
    	}
    	fmt.Println("json data :", string(jsons))
    }
    
    
  • 相关阅读:
    不忘初心,方得始终
    【读书笔记】Windows核心编程
    工作心得
    2015年随记
    微信开发的黑魔法
    [cssTopic]浏览器兼容性问题整理 css问题集 ie6常见问题【转】
    获取微信用户openid
    Spring Boot应用开发起步
    一种在Java中跨ClassLoader的方法调用的实现
    H5语义化标签
  • 原文地址:https://www.cnblogs.com/icxldd/p/13777493.html
Copyright © 2011-2022 走看看