golang 基础(17)struct

作者: zidea | 来源:发表于2019-03-19 07:33 被阅读11次

    struct

    创建 struct

    type Person struct {
        name string
        age int
    }
    

    通过 type 关键字定义一个 struct ,定义 struct 结构包括哪些属性,并且指定属性的类型

    struct 的成员的赋值

    p.name= "zidea"
    

    struct 是可以进行嵌套的

    type person struct {
        name    string
        age     int
        contact struct {
            phone, city string
        }
    }
    

    字面量初始化

    也可以通过字面值进行初始化,这是常用的做法,写法类似于JSON的写法

    type Person struct {
        name string
        age int
    }
    
    
    p := Person{
            name:"zidea",
            age: 30,
        }
    

    结构体作为参数传递

    定义函数接受参数为 Person 注意在 go 默认是传值的

    func print(p Person){
        fmt.Println(p.name)
        fmt.Println(p.age)
    }
    
    print(p)
    

    结构体指针

    如果要在函数 print 中修改作为参数传入的 person 对象,就需要传地址而非传值

     p := &Person{
            name:"zidea",
            age: 30,
        }
    
    func print(p *Person){
        fmt.Println(p.name)
        fmt.Println(p.age)
    }
    

    匿名结构体

      a := &struct{
            name string
            age int
        }{
            name:"zidea",
            age: 30,
        }
    

    结构体的继承

    go 语言中并没有面向对象语言的继承关系

    type human struct {
        sex int
    }
    
    type teacher struct {
        human
        name string
        age  int
    }
    
    type student struct {
        human
        name string
        age  int
    }
    

    相关文章

      网友评论

        本文标题:golang 基础(17)struct

        本文链接:https://www.haomeiwen.com/subject/nmjmmqtx.html