Swift中Optional值的鏈式挪用進修筆記。本站提示廣大學習愛好者:(Swift中Optional值的鏈式挪用進修筆記)文章只能為提供參考,不一定能成為您想要的結果。以下是Swift中Optional值的鏈式挪用進修筆記正文
Swift中的Optional值有如許的特征,當對其停止可選拆包時,即便用?停止Optional類型值的取值時,假如Optional值不為nil,則會前往原始類型的數據值,假如為nil,則會前往nil。是以,當應用?對Optional拆包落後行辦法、屬性或許下標的挪用時,假如有值,則會勝利響應挪用,假如沒有值,則會挪用掉敗,前往nil。
留意:應用!則會停止強迫拆包,這時候假如Optional值為nil,則會湧現運轉時毛病,是以開辟者在應用!停止強迫拆包時,必需確認Optional類型值不為nil。
當對可選值停止可選拆包並挪用其屬性或辦法後,不管原屬性或許辦法前往值是甚麼類型的,都邑被包裝成Optional值類型。當應用?對一個Optional值停止拆包並挪用其辦法時,辦法的前往值一會被包裝為Optional類型,示例以下:
class Myclass { var cls:MyClassTwo? } class MyClassTwo { func run() -> String { return "run" } } let obj:Myclass = Myclass() //將前往nil obj.cls?.run()
在停止Optional鏈挪用的時刻,會遵照以下一些特征:
1.假如停止?拆包Optional值的屬性或許辦法前往值本來為非Optional值,則會包裝成Optional值。
2.假如停止?拆包Optional值的屬性或許辦法前往值本來為Optional值,則仍然會前往Optional值,而且其實不會停止Optional值類型的嵌套。
3.因為應用Optional值?可選拆包時會將其屬性和辦法的前往值都包裝成Optional類型的,是以應用?可以停止Optional鏈式挪用,這其間,有一個環節挪用掉敗,全部鏈都邑前往nil。
示例以下:
let obj:Myclass = Myclass() //將前往nil (obj.cls?.run())?.startIndex