*延遲存儲屬性*
* 延遲存儲屬性是指當第一次被調用的時候才會計算其初始值的屬性。在屬性聲明前使用lazy來標示一個延遲存儲屬性
* 最常見的延遲存儲屬性:
> * 執行某個方法返回處理好的數據
> * 執行某個閉包返回處理好的數據
* 注意:
* 必須將延遲存儲屬性聲明成變量(使用var關鍵字),因為屬性的初始值可能在實例構造完成之后才會得到。而常量屬性在構造過程完成之前必須要有初始值,因此無法聲明成延遲屬性。
* 如果一個被標記為lazy的屬性在沒有初始化時就同時被多個線程訪問,則無法保證該屬性只會被初始化一次
lazy var dataList: \[String] = {
''? ? print("我懶加載了")
''? ? return ["lee", "jack", "why"]
'' }()
'' let demoFunc = {
''? ? () -> [String]
''? ? in
''? ? print("我懶加載了")
''? ? return ["lee", "jack", "why"]
'' }
'' lazy var dataList2: [String] = self.demoFunc()