Swift 的懒加载和计算型属性

懒加载
常规(简化)写法
懒加载的属性用 var 声明
1  | lazy var name: String = {  | 
完整写法
1  | lazy var name: String = { () -> String i  | 
本质是一个创建一个闭包 {} 并且在调用该属性时执行闭包 ()。
如OC的懒加载不同的是 swift 懒加载闭包只调用一次,再次调用该属性时因为属性已经创建,不再执行闭包。
计算型属性
常规写法
1  | var name: string {  | 
完整写法
1  | var name: string {  | 
计算型属性本质是重写了 get 方法,其类似一个无参有返回值函数,每次调用该属性都会执行 return
通常这样使用
1  | struct Cuboid {  | 
两者对比
相同点
- 使用方法完全一致
 - 都是用 
var声明 
不同点
实现原理不同
懒加载是第一次调用属性时执行闭包进行赋值
计算型属性是重写
get方法调用
{}的次数不同懒加载的闭包只在属性第一次调用时执行
计算型属性每次调用都要进入{}中,return新的值
- 本文标题:Swift 的懒加载和计算型属性
 - 创建时间:2017-05-03 00:00:00
 - 本文链接:posts/6a29.html
 - 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!