Swift中可选项、闭包、便利构造函数的相关问题
2016-03-09 11:40
363 查看
1.可选项:
? 声明可选项 var a: Int -> 1.有值(某一类型)someValue 2.nil
注意:可选项不能够直接参与计算 a! + 10 必须进行强制解包
2.解决可选项
< 1 > if let:快速赋值 并且判断值的对象是否为空
< 2 > guard let … else 为nil时 进入else分支 和if let用法相反 能够减少一层分支嵌套
< 3 > ?? (适用于 基本数据类型和字符串类型的可选项)快速合并空选项 —> 快速判断可选项是否为nil 如果为nil 给定为nil 情况下的默认值
3.闭包
闭包最基本类型: ()-> ()
闭包使用场景 和GCD结合使用
3.1闭包的基本特性:
1>闭包是提前准备好的一段代码块
2>可以当参数传递
3>在需要回调的地方 执行闭包 完成结果的回调
4>在闭包中使用self 有可能产生循环引用
注意:(1)闭包中使用self
(2)闭包当作函数的参数进行传递 该参数 被一个比临时变量生命周期更长的变量保存记录 使用生命周期更长的变量完成后续的回调操作 这时才会产生循环引用
4.便利构造函数
以self的形式调用指定的构造函数
< 1 >可以失败 可以return nil
< 2 >还是一个构造函数 必须使用self的形式来调用指定的构造函数 必须依赖于其他的构造函数来构造对象
< 3 >不能够被重写 也不能够被super
< 4 >能够被继承
? 声明可选项 var a: Int -> 1.有值(某一类型)someValue 2.nil
注意:可选项不能够直接参与计算 a! + 10 必须进行强制解包
2.解决可选项
< 1 > if let:快速赋值 并且判断值的对象是否为空
< 2 > guard let … else 为nil时 进入else分支 和if let用法相反 能够减少一层分支嵌套
< 3 > ?? (适用于 基本数据类型和字符串类型的可选项)快速合并空选项 —> 快速判断可选项是否为nil 如果为nil 给定为nil 情况下的默认值
3.闭包
闭包最基本类型: ()-> ()
闭包使用场景 和GCD结合使用
3.1闭包的基本特性:
1>闭包是提前准备好的一段代码块
2>可以当参数传递
3>在需要回调的地方 执行闭包 完成结果的回调
4>在闭包中使用self 有可能产生循环引用
注意:(1)闭包中使用self
(2)闭包当作函数的参数进行传递 该参数 被一个比临时变量生命周期更长的变量保存记录 使用生命周期更长的变量完成后续的回调操作 这时才会产生循环引用
4.便利构造函数
以self的形式调用指定的构造函数
< 1 >可以失败 可以return nil
< 2 >还是一个构造函数 必须使用self的形式来调用指定的构造函数 必须依赖于其他的构造函数来构造对象
< 3 >不能够被重写 也不能够被super
< 4 >能够被继承
相关文章推荐
- 深入理解PHP之匿名函数
- 最后一次说说闭包
- Ruby中使用Block、Proc、lambda实现闭包
- LUA中的闭包(closure)浅析
- Lua中的闭包学习笔记
- C#中函数的创建和闭包的理解
- 深入理解javascript作用域和闭包
- javascript作用域和闭包使用详解
- 谈谈JavaScript中的函数与闭包
- 细品javascript 寻址,闭包,对象模型和相关问题
- JavaScript中的闭包原理分析
- 浅谈javascript中的闭包
- 学习javascript的闭包,原型,和匿名函数之旅
- javascript 闭包详解
- JavaScript 匿名函数和闭包介绍
- JavaScript 闭包深入理解(closure)
- 深入理解JavaScript 闭包究竟是什么
- 谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
- 解决js函数闭包内存泄露问题的办法
- JavaScript中的闭包(Closure)详细介绍