Swift里的lazy

惰性初始化,就是在變量第一次使用的時候才進行初始化。

Swift中,有兩種方式來惰性初始化。

第一種,簡單表達式

lazy varfirst = NSArray(objects:"1","2")

第二種,閉包

lazy varsecond:String= {return"second"}()

使用場景:

1、屬性本身依賴于外部因素才能初始化

2、屬性需要復雜計算,消耗大量CPU(耗時)

3、屬性不確定是否會使用到

如果 = nil, 再用.用到的時候不會再創建,所以小心使用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉至元數據結尾創建: 董瀟偉,最新修改于: 十二月 23, 2016 轉至元數據起始第一章:isa和Class一....
    40c0490e5268閱讀 1,762評論 0 9
  • Swift2.0 1.defer譯為延緩、推遲之意類似棧 注意作用域,其次是調用順序——即一個作用域結束(注意),...
    zeqinjie閱讀 3,399評論 0 50
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,198評論 4 61
  • 問題 1)柯里化,通過柯里化,改造target-action,因為selector只能使用字符串,在編譯時無法發現...
    lanjing閱讀 3,539評論 3 19
  • 15日 18:18高鐵 衡陽-長沙 22:10飛機 長沙-麗江 行程1 :16日 ¥開啟云南之旅¥ 聯...
    球球哈哈哈閱讀 216評論 0 0