结构体内嵌

  • 结构体内嵌
  • 结构体内嵌的初始化

结构体内嵌

Go语言的结构体内嵌是一种组合特性,使用结构体内嵌可构建一种面向对象编程思想中的继承关系。 结构体实例化后,可直接访问内嵌结构体的所有成员变量和方法。

使用格式:

type 结构体名1 struct {成员变量1 类型1成员变量2 类型2
}type 结构体名2 struct {结构体名1成员变量3 类型3
}

举例:

package mainimport "fmt"type Book struct {title  stringauthor stringnum    intid     int
}type BookBorrow struct {BookborrowTime string
}type BookNotBorrow struct {BookreadTime string
}func main() {bookBorrow := &BookBorrow{}bookNotBorrow := &BookNotBorrow{}fmt.Println(bookBorrow)fmt.Println(bookNotBorrow)
}

结构体内嵌的初始化

使用结构体的键值完成初始化操作:

package mainimport "fmt"type Book struct {title  stringauthor stringnum    intid     int
}type BookBorrow struct {BookborrowTime string
}type BookNotBorrow struct {BookreadTime string
}func main() {bookBorrow := &BookBorrow{ // 键值初试化Book: Book{title: "golang", author: "Tom",num: 20, id: 123456,},borrowTime: "2022.01.02",}bookNotBorrow := &BookNotBorrow{ // 列表初始化Book: Book{"python","Jan",10,654321,},readTime: "2022.01.03",}fmt.Println(bookBorrow)fmt.Println(bookNotBorrow)
}

当然可以使用 结构体实例化名.成员变量 = 值 的形式完成初始化。

package mainimport "fmt"type Book struct {title  stringauthor stringnum    intid     int
}type BookBorrow struct {BookborrowTime string
}type BookNotBorrow struct {BookreadTime string
}func main() {bookBorrow := &BookBorrow{ // 键值初试化Book: Book{title: "golang", author: "Tom",num: 20, id: 123456,},borrowTime: "2022.01.02",}// bookNotBorrow := &BookNotBorrow{ // 列表初始化//   Book: Book{"python",//        "Jan",//      10,//       654321,//   },//    readTime: "2022.01.03",// }bookNotBorrow := &BookNotBorrow{} // 使用结构体属性完成初始化操作bookNotBorrow.Book.title = "c++"bookNotBorrow.Book.author = "peter"bookNotBorrow.Book.num = 50bookNotBorrow.Book.id = 789456bookNotBorrow.readTime = "2022.01.04"fmt.Println(bookBorrow)fmt.Println(bookNotBorrow)
}

Go语言学习-- No.11结构体--结构体内嵌相关推荐

  1. C语言学习(九)之结构体

    文章目录 一.结构体基础 1.1 什么是结构体 1.2 建立结构声明 1.3 定义结构变量 1.4 初始化结构 1.5 访问结构成员 1.6 结构的初始化器 二.结构数组 2.1 声明结构数组 三.嵌 ...

  2. 2020.1.13 C语言学习 结构体+结构体数组+结构体指针

    结构体 结构体的形式 struct 结构体名称 { 结构体成员1; 结构体成员2; - }; 例如: 图书的结构体 struct Book {char title[128];char author[4 ...

  3. 【C 语言】结构体 ( 结构体 数组 作为函数参数 | 数组 在 堆内存创建 )

    文章目录 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 二.完整代码示例 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 在上一篇博客 [C 语言]结构体 ( 结构体 数 ...

  4. C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例

    C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例 目录 一.简单介绍 二.结构体定义和使用 三. ...

  5. C++结构体 结构体定义和使用、结构体数组、结构体指针、结构体嵌套结构体、结构体做函数参数

    C++结构体 第二章 C++结构体 1.结构体定义和使用 语法:struct 结构体名 { 结构体成员列表 }: 通过结构体创建变量的方式有三种: struct 结构体名 变量名 struct 结构体 ...

  6. C语言学习笔记11-结构体(struct、结构作为函数参数、结构数组)、联合体/共用体typedef; union(大、小端序)

    C语言-结构类型 程序中的数据都需要有类型支撑,当数据很复杂时(不是简单的一个值,如时间信息:年月日时分秒6个数据需要作为一个整体),我们需要声明一个新的结构类型来描述这种复合的数据(可以包含很多不同 ...

  7. go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  8. c语言动态生成结构体结构,C语言实现动态结构体数组

    C语言实现动态结构体数组 原因是因为以前使用C++来实现的,主要用VERCTOR C++标准库的失代器 而不是纯C:C++是C语言的超集,除了包含C外,还有C++各种新语法,新库! 不过虽然C++用起 ...

  9. 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )

    文章目录 一.学生管理系统 二.代码示例 一.学生管理系统 前两篇博客 [C 语言]文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 ) [C 语言 ...

最新文章

  1. 火山小视频尼尔森:2019新线消费市场人群洞察报告(附下载)
  2. 功率曲线k值_特性曲线在参数计算中的应用
  3. 【福利】PyTorch中文版官方教程来啦(附下载)
  4. 浅谈Delphi过程与函数03 - 零基础入门学习Delphi22
  5. Java——删除文件
  6. 东电计算机专业好就业吗,东北电力大学就业前景怎样好不好
  7. python-提取特征 特征选择
  8. iOS测试工程师如何用xcode进行性能测试
  9. 洗地扫地机一体机好用吗、洗扫一体洗地机选购必看
  10. SECTION 11 安装软件程序
  11. 多益网络2015校园招聘第二次笔试题
  12. webpack打包图片资源问题
  13. excel报错无法粘贴信息,原因复制区域跟粘贴区域形状不同
  14. Quantopian 入门系列二 - 流水线 (上)
  15. Ruff Chain 荣获”2018年度最具发展潜力项目“奖
  16. Spring工作原理。原理就是这么简单
  17. Windows畸形文件夹
  18. [系统安全] 二十二.PE数字签名之(下)微软证书漏洞CVE-2020-0601复现及Windows验证机制分析
  19. 聊聊小程序的登录逻辑
  20. python 学术文献下载_PyHubWeekly | 第二十六期:一款开源免费的学术论文下载工具...

热门文章

  1. Trie(字典树)解析及其在编程竞赛中的典型应用举例
  2. SQLServer之CHECK约束
  3. java typedef的用法_Java 枚举用法详解(二)
  4. esp32-C3开发板制作钉钉蓝牙打卡神器
  5. 棋盘覆盖问题——分治法——代码清晰易懂
  6. 王者荣耀东西对决志竞巅峰,谁能新王加冕
  7. C语言之——整形、浮点家族
  8. ADSCOPE加入中国互联网协会!
  9. switch参数支持的类型
  10. C#.NET 无aspx文件部署