zoukankan      html  css  js  c++  java
  • Go结构体嵌套

    1. Go结构体嵌套

    1.1 嵌套别的结构体

    package main
    
    import (
        "encoding/json"
        "fmt"
    )
    type addr struct {
        Province string
        City string
    }
    type info struct {
        Age int
        Email string
    }
    type student struct {
        Name string
        Address addr   // 嵌套别的结构体
    }
    
    func main() {
        
        st := student{
            Name: "网五",
            Address: addr{
                Province: "bj",
                City:     "bj",
            }
        }
        s1,_  := json.Marshal(st)
        fmt.Println(st)
        fmt.Println(string(s1))
    }

    结果

    {网五 {bj bj} { } {0 }}
    {"Name":"网五","Address":{"Province":"bj","City":"bj"},"Province":"","City":"","Age":0,"Email":""}

    1.2 匿名嵌套别的结构体,类型名做名称

    package main
    
    import (
        "encoding/json"
        "fmt"
    )
    
    type addr struct {
        Province string
        City string
    }
    type info struct {
        Age int
        Email string
    }
    type student struct {
        Name string
        Address addr   // 嵌套别的结构体
        addr // 匿名嵌套别的结构体,就使用类型名做名称
        info
    }
    
    func main() {
    
        st := student{
            Name: "网五",
            Address: addr{
                Province: "bj",
                City:     "bj",
            },
            addr:addr{"bj", "bj"},   // 属性名称和结构体名称保持一致
            info:info{19,"aaa@navinfoolpm"},
        }
        s1,_  := json.Marshal(st)
        fmt.Println(st)
        fmt.Println(string(s1))
    }

    结果

    {网五 {bj bj} {bj bj} {19 aaa@navinfoolpm}}
    {"Name":"网五","Address":{"Province":"bj","City":"bj"},"Province":"bj","City":"bj","Age":19,"Email":"aaa@navinfoolpm"}
  • 相关阅读:
    【计网实验6】静态路由实验
    【计网】第六章
    【操统5】第六章/第七章
    【计网 6】链路层
    【Java学习1】
    【机器学习1】
    【计网实验】packet
    【计网】第五章网络层:控制平面
    python中math模块常用的方法整理
    使用python如何进行截小图
  • 原文地址:https://www.cnblogs.com/supery007/p/13328347.html
Copyright © 2011-2022 走看看