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