zoukankan      html  css  js  c++  java
  • 结构体

    结构体是用户定义的类型,表示一系列的集合。语法为 :type关键字  结构体名字 struct{ }

    1.结构体声明

    type Person struct {
        name  string
        sex  int
        age  int
    ----------------------------------
        sex,age  int    # 由于age和sex是相同类型的字段,可以定义在同一行
    }

    2.嵌套结构体

    type Person struct {
        name string
        sex ,age int
        hobby Hobby
    }
    
    type Hobby struct {
        id int
        name string
    }

     3.结构体嵌套+匿名字段

    type Person struct {
        name  string
        sex  ,age int
        Hobby
    
    }
    type Hobby struct {
        id int
        name  string
    }

     4.定义初始化

    func main() {
        person  :=Person{}    # 定义没有初始化
        var person Person
        var person Person=Person{name:"lqz"}  # 指名道姓传,可以只传一部分
        var person Person=Person{"lqz",1,19}  # 按位置传,必须要全传
        //person.name="lqz"    # 结构体是值类型,可以通过点(.)方法取值
        fmt.Println(person.name)   # 只有属性,没有方法
    }

    5.匿名结构体 

    a:=struct {
        name string
        age int
        }{"lqz",19}
        fmt.Printf(a.name)    # 取值

    6.结构体的零值

    p:=Person{name:"lqz"} # 一般用驼峰体来定义变量和函数
    pPoint: = &p  
    var pPoint *Person=&p
    fmt.Println(pPoint)
    fmt.Println(pPoint.name)    # 等价于 fmt.Println((*pPoint).name)

     7.结构镶嵌体

    package main  
    
    import "fmt"        
    
    func main() {
            p:=Person{name:"lqz",hobby:Hobby{10,"篮球"}}
        p:=Person{name:"lqz",hobby:Hobby{id:10,name:"篮球"}}
        p.hobby.id=101
        fmt.Println(p.hobby.name)
    
        #结构体嵌套加匿名字段
        p:=Person{name:"lqz",Hobby:Hobby{10,"篮球"}}
        //取p中的hobbyname
        fmt.Println(p.Hobby.hobbyname)
        fmt.Println(p.hobbyname)
    
        #变量提升过程中如果有重名的,就不提升了
        p:=Person{name:"lqz",Hobby:Hobby{10,"篮球"}}
        fmt.Println(p.Hobby.name)
        fmt.Println(p.name)
    }
  • 相关阅读:
    正则表达式(十四)——找出某一个网页内部的所有的邮箱
    正则表达式(十三)——分组
    正则表达式(十二)——字符串的替换
    正则表达式(十一)——find和lookingAt
    查看隐藏文件夹
    SpringBoot 热部署
    oracle dmp文件泵导入
    python -爬虫-pycrul安装问题
    阿里云https tomcat配置
    jar包下载
  • 原文地址:https://www.cnblogs.com/blue-tea/p/12037285.html
Copyright © 2011-2022 走看看