懶惰的儲存屬性

延遲儲存的屬性具有在首次訪問之前不計算的值。當變數的計算計算量很大時,這對於節省記憶體很有用。你用 lazy 宣告瞭一個懶惰的屬性:

lazy var veryExpensiveVariable = expensiveMethod()

通常將它分配給閉包的返回值:

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

必須使用 var 宣告延遲儲存的屬性。