国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

Swift中Optional值的鏈式調用學習筆記

2020-03-09 17:47:53
字體:
來源:轉載
供稿:網友

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()//將返回nilobj.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

 

 

注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富蕴县| 大化| 广饶县| 肇州县| 阿荣旗| 雷州市| 大洼县| 咸丰县| 玉溪市| 遂昌县| 河间市| 凉山| 永嘉县| 汝阳县| 新丰县| 章丘市| 惠安县| 铁岭县| 黑水县| 台山市| 白城市| 离岛区| 武穴市| 历史| 柘城县| 吉水县| 龙南县| 外汇| 峡江县| 鹰潭市| 林口县| 杭锦旗| 弋阳县| 黄大仙区| 沙雅县| 泰来县| 桑日县| 旌德县| 岳西县| 山东| 广德县|