zoukankan      html  css  js  c++  java
  • go语法:结构体嵌套

    参考:

    https://zhuanlan.zhihu.com/p/300992397(知乎go结构体)

    https://studygolang.com/articles/11313 (go中文网)

    匿名结构体和非匿名结构体

    上代码:

    package main
    
    import "fmt"
    
    type info struct {
        addr string
        name string
    }
    type info2 struct {
        addr string
        name string
    }
    type user struct{
        id int32
        info //匿名:未指定字段名
        iii info2 //非匿名:指定字段名为iii
    }
    
    func (pInfo *info) printInfo()  {
        fmt.Println(pInfo)
    }
    func (pInfo *info2) printInfo2()  {
        fmt.Println(pInfo)
    }
    func (pUser * user) printUser(){
        fmt.Println(pUser)
    }
    
    func main(){
        u := user{
            id: 1,
            info:info{
                addr: "aaa",
                name:"babb",
            },
        }
    
        u.printInfo()//假如是匿名字段,go会进行方法提升,可以直接.出来
        u.printUser()
        u.iii.printInfo2()//假如指定了字段的命名,那调用相关函数就需要指定字段名才能调用了
        return
    }

    匿名结构体与父级结构体字段同名

    上代码

    type Info struct {
        sex int
        name string
        age int
        address string
    }
    
    type User struct{
        like string
        sex int
        Info
    }
    
    user:=User{}
    user.sex=1//这里修改的外部结构User里面的sex字段值
    user.Info.sex=2//这里修改的是嵌入结构Info的sex字段值
  • 相关阅读:
    [BUUCTF]PWN14——not_the_same_3dsctf_2016
    flask cookie
    关于cookie和session
    mysql修改表操作
    MySQL 增删改查
    mysql数据类型
    python读写mysql
    聚合查询
    条件查询
    排序
  • 原文地址:https://www.cnblogs.com/tkzc2013/p/15208979.html
Copyright © 2011-2022 走看看