为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Go


// 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的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消