构造器(一)
来源:互联网 发布:淘宝客 微信 编辑:程序博客网 时间:2024/06/03 06:05
构造器的关键字是init,今天我们就谈谈这个init关键字,在创建类或者结构体时,必须为所有的存储属性设置初始值,我们可以在定义的时候直接设置默认值。或者在构造器中设置值。
实例存储的初始化大致分为如下几类:
- 定义实例存储属性时显式指定初始值。
- 实例存储属性的类型为可选类型,这样默认分配nil作为初始值
- 提供构造器为实例存储属性分配初始值
很明显,今天我们学习的是第三者
无参构造器
构造器后面括号里没有参数
struct Week { var desc:String="" var info:String="" init() { self.desc="周五" self.info="这一天是程序员最开心的日子" } } var week2=Week() print(week2.desc) print(week2.info)
有参构造器
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)
有参取消无外部形参名
在参数前面加上 _ 来取消隐式的外部形参名
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)
构造器重载
上面我们定义了三个构造器,像这样的一个结构体或类里面包含多个构造器的,就构成了构造器重载。区分构造器重载的条件是:多个构造器的参数列表或者外部形参名必须不同。
上面三块代码整合到一块就构成了构造器重载,如下:
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 } }
0 0
- 构造器(一)
- 解释器构造实践-ANTLR(一)
- 构造函数(一)
- C++ 拷贝构造(一)
- C++拾遗--构造函数(一)默认构造
- c#构造器的一点理解(一)
- 完整cmm解释器构造实践(一):搭建环境
- Effective Java(静态工厂与构造器一)
- 初识ThreadPoolExecutor(一)——构造器
- Effective Java之静态工厂代替构造器(一)
- 构造器(构造方法)
- 构造方法/构造器
- 关于拷贝构造函数 (一)
- 答索引构造一问
- 答索引构造一问
- 拷贝构造函数(一)
- YUI(一)构造函数分析
- 构造一棵表达式树
- Leetcode ☞ 1. Two Sum ☆ 【Hashmap】
- 使用PowerDesigner将数据库中的表结构转为物理数据模型
- VMwareTools安装
- onActivityResult获取返回值
- android 调用系统相册和系统拍照功能的Demo
- 构造器(一)
- 【POJ2406】Power Strings 中文题意&题解&代码(C++)
- JS对象
- WWDR证书问题
- java下开发web后台
- 解决toolbar在不同页面下显示的menu不同的问题
- [Git]第四回 git之add和commit
- spring中整合redis
- linux(ubuntu)ssh有密码访问出现的问题