代码示例:

package main

import "fmt"

type Human struct {
name string
age int
weight int
} type Student struct {
Human // 匿名字段,那么默认Student就包含了Human的所有字段
speciality string
} func main() {
// 我们初始化一个学生
mark := Student{Human{"Mark", , }, "Computer Science"} // 我们访问相应的字段
fmt.Println("His name is ", mark.name)
fmt.Println("His age is ", mark.age)
fmt.Println("His weight is ", mark.weight)
fmt.Println("His speciality is ", mark.speciality)
// 修改对应的备注信息
mark.speciality = "AI"
fmt.Println("Mark changed his speciality")
fmt.Println("His speciality is ", mark.speciality)
// 修改他的年龄信息
fmt.Println("Mark become old")
mark.age =
fmt.Println("His age is", mark.age)
// 修改他的体重信息
fmt.Println("Mark is not an athlet anymore")
mark.weight +=
fmt.Println("His weight is", mark.weight) mark.Human = Human{"aaa", , }
mark.Human.age +=
fmt.Println(mark)
}

004.struct类型
1 type声明新类型
1.1 type testInt func(int) bool // 声明了一个函数类型
1.2 type person struct //声明一个结构体类型
1.3 struct与array一样是值类型,作为参数会copy完整数据; slice、map、channel等传递的是数据的内存地址
2 初始化
2.1 顺序初始化
2.1.1 var p Person = Person{"aaa", 123}
2.2 指定参数初始化
2.2.1 p = Person{name: "test", age: 456}
2.3 new指针初始化
2.3.1 var pp *Person = new(Person)
3 匿名访问
3.1 组合关系的struct可以直接通过被继承字段访问
3.2 也可以通过struct名称访问
3.3 struct不仅仅能够将struct作为匿名字段、自定义类型、内置类型都可以作为匿名字段, 而且可以在相应的字段上面进行函数操作
3.4 允许我们去重载通过匿名字段继承的一些字段, 当然如果我们想访问重载后对应匿名类型里面的字段,可以通过匿名字段名来访问
 
 
 
 

最新文章

  1. phpMoadmin CVE-2015-2208 远程代码执行漏洞分析
  2. IIS负载均衡的NLB解决方案
  3. 终于解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01
  4. 2016 系统设计第一期 (档案一)MVC 控制器接收表单数据
  5. opencv行人检测里遇到的setSVMDetector()问题
  6. php基础知识【oop/mvc/orm/aop】
  7. 使用x manager 连接Linux桌面
  8. c#语言基础之组成结构
  9. 上海及周边地区产品技术创业QQ群:98905958
  10. N皇后问题——递归求解
  11. Android 学习笔记之实时保存数据-现场保护onSaveInstanceState()
  12. [AHOI2012]树屋阶梯
  13. 1、win10下连接本地系统上的Linux操作系统(分别以Nat方式和桥接模式实现)
  14. lk中内联调用的dsb()
  15. 类Objects
  16. 2008R2 部署 aspnetcore repair failed 函数不正确
  17. IdentityServer4-客户端定义-翻译
  18. WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理(核心)
  19. Light Probe
  20. 进程 day36

热门文章

  1. AspNetUsers
  2. RabbitMQ安装后不能运行 Error: unable to connect to node nodedown
  3. Linux查看软件安装路径
  4. java正则表达式 --简单认识
  5. DataTable转实体
  6. android-获取当前屏幕尺寸信息
  7. 详解CSS中clear属性both、left、right值的含义
  8. HDU 1048
  9. ASP.NET 生成报表的几中方案
  10. PHP基础文件下载类的简单封装