构造器(一)
2016-02-29 15:42
344 查看
构造器的关键字是init,今天我们就谈谈这个init关键字,在创建类或者结构体时,必须为所有的存储属性设置初始值,我们可以在定义的时候直接设置默认值。或者在构造器中设置值。
实例存储的初始化大致分为如下几类:
定义实例存储属性时显式指定初始值。
实例存储属性的类型为可选类型,这样默认分配nil作为初始值
提供构造器为实例存储属性分配初始值
很明显,今天我们学习的是第三者
上面三块代码整合到一块就构成了构造器重载,如下:
实例存储的初始化大致分为如下几类:
定义实例存储属性时显式指定初始值。
实例存储属性的类型为可选类型,这样默认分配nil作为初始值
提供构造器为实例存储属性分配初始值
很明显,今天我们学习的是第三者
无参构造器
构造器后面括号里没有参数[code] struct Week { var desc:String="" var info:String="" init() { self.desc="周五" self.info="这一天是程序员最开心的日子" } } var week2=Week() print(week2.desc) print(week2.info)
有参构造器
[code] struct Week { var desc:String="" var info:String="" init(desc:String,info:String) { self.desc=desc self.info=info } } var week=Week(desc: "周一", info:"上班的第一天,怀念周末的日子") print(week.desc) print(week.info)
有参取消无外部形参名
在参数前面加上 _ 来取消隐式的外部形参名[code] struct Week { var desc:String="" var info:String="" init() { self.desc="周五" self.info="这一天是程序员最开心的日子" } init(_ desc:String, _ info:String) { self.desc=desc self.info=info } } var week1=Week("周一","上班的第一天,怀念周末的日子") print(week1.desc) print(week1.info)
构造器重载
上面我们定义了三个构造器,像这样的一个结构体或类里面包含多个构造器的,就构成了构造器重载。区分构造器重载的条件是:多个构造器的参数列表或者外部形参名必须不同。上面三块代码整合到一块就构成了构造器重载,如下:
[code] struct Week { var desc:String="" var info:String="" init() { self.desc="周五" self.info="这一天是程序员最开心的日子" } init(desc:String,info:String) { self.desc=desc self.info=info } init(_ desc:String, _ info:String) { self.desc=desc self.info=info } }
相关文章推荐
- 安卓存储数据和文件系列4:内容提供者(Content Provider)方式
- BZOJ4010: [HNOI2015]菜肴制作
- BZOJ1070[SCOI2007]修车
- POJ3017Cut the Sequence|DP|单调队列|set
- 设置iOS项目Version Build版本号自动增加
- Shared Preference
- 从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题(如何解决编码 0 延时)
- git中提示 please tell me who you are
- oracle的分析函数over(Partition by...)
- 147. Insertion Sort List【M】Java
- leetcode 326. Power of Three
- linux配置文件的区别整理
- Magical Record: how to make programming with Core Data pleasant
- 以一个着色游戏展开讲解Android中区域图像填色的方法
- ModSecurity web application firewall (WAF) Research - .Little Hann
- lua zmq client
- Tomcat中部署web项目的方法
- 利用Python,四步掌握机器学习
- 使用PowerDesigner将数据库中的表结构转为物理数据模型
- mysql5.6主从