没有合适的资源?快使用搜索试试~ 我知道了~
Go语言并没有沿袭传统面向对象编程中的诸多概念 封装:通过方法实现 继承:通过匿名字段实现 多态:通过接口实现 一、匿名组合 1. 匿名字段 匿名字段(嵌入字段): go支持只提供类型,而不写字段名的方式 匿名字段也是结构体时: 这个结构体所拥有的全部字段都被隐式地引入了当前定义的这个结构体 //人 type Person struct { name string sex byte age int } //学生 type Student struct { Person // 匿名字段,那么默认Student就包含了Person的所有字段 id
资源推荐
资源详情
资源评论




























Go语言基础之面向对象编程语言基础之面向对象编程
Go语言并没有沿袭传统面向对象编程中的诸多概念
封装:通过方法实现
继承:通过匿名字段实现
多态:通过接口实现
一、匿名组合一、匿名组合
1. 匿名字段匿名字段
匿名字段(嵌入字段):
go支持只提供类型,而不写字段名的方式
匿名字段也是结构体时:
这个结构体所拥有的全部字段都被隐式地引入了当前定义的这个结构体
//人
type Person struct {
name string
sex byte
age int
}
//学生
type Student struct {
Person // 匿名字段,那么默认Student就包含了Person的所有字段
id int
addr string
}
2. 初始化初始化
//人
type Person struct {
name string
sex byte
age int
}
//学生
type Student struct {
Person // 匿名字段,那么默认Student就包含了Person的所有字段
id int
addr string
}
func main() {
//顺序初始化
s1 := Student{Person{"mike", 'm', 18}, 1, "sz"}
//s1 = {Person:{name:mike sex:109 age:18} id:1 addr:sz}
fmt.Printf("s1 = %+v", s1)
//s2 := Student{"mike", 'm', 18, 1, "sz"} //err
//部分成员初始化1
s3 := Student{Person: Person{"lily", 'f', 19}, id: 2}
//s3 = {Person:{name:lily sex:102 age:19} id:2 addr:}
fmt.Printf("s3 = %+v", s3)
//部分成员初始化2
s4 := Student{Person: Person{name: "tom"}, id: 3}
//s4 = {Person:{name:tom sex:0 age:0} id:3 addr:}
fmt.Printf("s4 = %+v", s4)
}
3. 成员的操作成员的操作
var s1 Student //变量声明
//给成员赋值
s1.name = "mike" //等价于 s1.Person.name = "mike"
s1.sex = 'm'
s1.age = 18
s1.id = 1
s1.addr = "sz"
资源评论


weixin_38651812
- 粉丝: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 铁道部通信机软件用户操作手册.doc
- 云计算技术演进趋势.pptx
- 西门子PLC培训PPT课件.ppt
- 讨论10kV中压配电网的自动化设计专业技术方案.doc
- 关于计算机应用技术与信息管理的整合分析.docx
- 大话李白flash创作过程.doc
- Sitecore 8 开发实战指南
- 基于数据挖掘技术的慢性肾脏病中医症候规律研究.docx
- 互联网+背景下高职英语教学模式探索.docx
- 100道计算机基础题(附答案).doc
- 浅议电力企业电气工程项目管理.docx
- 所得税费用及递延税款的列式计算法.doc
- 中职计算机教学方法探究.docx
- 网络对新闻传播活动的影响分析.docx
- CHAPTER酵母基因工程.ppt
- 以科技哲学视野浅析网络技术同政府治理的价值契合与创新取向.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
