• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go-结构体

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

概述

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

 

  //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))    
    }

 



运行结果:




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[go]string内存结构发布时间:2022-07-10
下一篇:
以太坊系列之十八: 百行go代码构建p2p聊天室发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap