继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Go中的"继承"之struct的匿名字段

holdtom
关注TA
已关注
手记 1846
粉丝 240
获赞 991


// code_016_anonymous_field project main.go

package main

import (

    "fmt"

)

type Person struct {

    name string

    sex  byte

    age  int

}

type Student struct {

    // 一般情况下,定义结构体的时候,字段名和类型一一对应,如下:Person为类型,并无字段名。

    Person //匿名字段,name默认Student就包含了Person的所有字段。

    id     int

    addr   string

}

func main() {

    //顺序初始化

    s1 := Student{Person{"ck_god", 1, 18}, 1, "sz"}

    fmt.Printf("s1=%+v\n", s1)

    //部分成员初始化1

    s2 := Student{Person: Person{"xiaobai", 0, 20}, id: 2, addr: "sz"}

    //部分成员初始化2

    s3 := Student{Person: Person{name: "kavai"}, id: 3}

    fmt.Println(s2, s3)

    //访问成员变量

    var s4 Student

    s4.name = "ck_god"

    s4.sex = 1

    s4.age = 18

    s4.id = 1

    s4.addr = "sz"

    fmt.Println(s4)

    //访问成员变量2

    var s5 Student

    s5.Person = Person{"god_girl", 1, 23}

    s5.id = 2

    s5.addr = "wz"

    fmt.Println(s5)

}

s1={Person:{name:ck_god sex:1 age:18} id:1 addr:sz}

{{xiaobai 0 20} 2 sz} {{kavai 0 0} 3 }

{{ck_god 1 18} 1 sz}

{{god_girl 1 23} 2 wz}

©著作权归作者所有:来自51CTO博客作者ck_god的原创作品,如需转载,请注明出处,否则将追究法律责任


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP