懒惰的存储属性

延迟存储的属性具有在首次访问之前不计算的值。当变量的计算计算量很大时,这对于节省内存很有用。你用 lazy 声明了一个懒惰的属性:

lazy var veryExpensiveVariable = expensiveMethod()

通常将它分配给闭包的返回值:

lazy var veryExpensiveString = { () -> String in
    var str = expensiveStrFetch()
    str.expensiveManipulation(integer: arc4random_uniform(5))
    return str
}()

必须使用 var 声明延迟存储的属性。