zoukankan      html  css  js  c++  java
  • Go

    概述

    结构体是将零个或多个任意类型的变量,组合在一起的聚合数据类型,也可以看做是数据的集合。

    声明结构体

    //demo_11.go
    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)
    }
    

    运行结果:

    生成 JSON

    //demo_12.go
    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)
    }
    

    运行结果:

    改变数据

    //demo_13.go
    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))
    }
    

    运行结果:

    推荐阅读

    本文欢迎转发,转发请注明作者和出处,谢谢!

  • 相关阅读:
    Hive学习笔记记录
    Hadoop学习笔记记录
    python学习笔记记录
    2018高级软件工程——助教总结
    Week3 第二次结对编程
    Week2 第一次结对编程
    Week1 博客作业
    最后一周总结
    阅读和提问3
    个人项目 案例分析
  • 原文地址:https://www.cnblogs.com/xinliangcoder/p/11134787.html
Copyright © 2011-2022 走看看