1.可選項:閉包
? 聲明可選項 var a: Int -> 1.有值(某一類型)someValue 2.nil函數
注意:可選項不可以直接參與計算 a! + 10 必須進行強制解包spa
2.解決可選項orm
< 1 > if let:快速賦值 而且判斷值的對象是否爲空對象
< 2 > guard let … else 爲nil時 進入else分支 和if let用法相反 可以減小一層分支嵌套繼承
< 3 > ?? (適用於 基本數據類型和字符串類型的可選項)快速合併空選項 —> 快速判斷可選項是否爲nil 若是爲nil 給定爲nil 狀況下的默認值生命週期
3.閉包字符串
閉包最基本類型: ()-> ()變量
閉包使用場景 和GCD結合使用循環
3.1閉包的基本特性:
1>閉包是提早準備好的一段代碼塊
2>能夠當參數傳遞
3>在須要回調的地方 執行閉包 完成結果的回調
4>在閉包中使用self 有可能產生循環引用
注意:(1)閉包中使用self
(2)閉包看成函數的參數進行傳遞 該參數 被一個比臨時變量生命週期更長的變量保存記錄 使用生命週期更長的變量完成後續的回調操做 這時纔會產生循環引用
4.便利構造函數
以self的形式調用指定的構造函數
< 1 >能夠失敗 能夠return nil
< 2 >仍是一個構造函數 必須使用self的形式來調用指定的構造函數 必須依賴於其餘的構造函數來構造對象
< 3 >不可以被重寫 也不可以被super
< 4 >可以被繼承