麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Swift > 正文

Swift中Optional值的鏈?zhǔn)秸{(diào)用學(xué)習(xí)筆記

2020-03-09 17:47:53
字體:
供稿:網(wǎng)友

Swift中的Optional值有這樣的特性,當(dāng)對其進行可選拆包時,即使用?進行Optional類型值的取值時,如果Optional值不為nil,則會返回原始類型的數(shù)據(jù)值,如果為nil,則會返回nil。因此,當(dāng)使用?對Optional拆包后進行方法、屬性或者下標(biāo)的調(diào)用時,如果有值,則會成功相應(yīng)調(diào)用,如果沒有值,則會調(diào)用失敗,返回nil。

注意:使用!則會進行強制拆包,這時如果Optional值為nil,則會出現(xiàn)運行時錯誤,因此開發(fā)者在使用!進行強制拆包時,必須確認Optional類型值不為nil。

當(dāng)對可選值進行可選拆包并調(diào)用其屬性或方法后,無論原屬性或者方法返回值是什么類型的,都會被包裝成Optional值類型。當(dāng)使用?對一個Optional值進行拆包并調(diào)用其方法時,方法的返回值一會被包裝為Optional類型,示例如下:

class Myclass {  var cls:MyClassTwo?  }class MyClassTwo {  func run() -> String {    return "run"  }}let obj:Myclass = Myclass()//將返回nilobj.cls?.run()

在進行Optional鏈調(diào)用的時候,會遵守如下一些特性:

1.如果進行?拆包Optional值的屬性或者方法返回值原來為非Optional值,則會包裝成Optional值。

2.如果進行?拆包Optional值的屬性或者方法返回值原來為Optional值,則依然會返回Optional值,并且并不會進行Optional值類型的嵌套。

3.由于使用Optional值?可選拆包時會將其屬性和方法的返回值都包裝成Optional類型的,因此使用?可以進行Optional鏈?zhǔn)秸{(diào)用,這其間,有一個環(huán)節(jié)調(diào)用失敗,整個鏈都會返回nil。

示例如下:

let obj:Myclass = Myclass()//將返回nil(obj.cls?.run())?.startIndex

 

 

注:相關(guān)教程知識閱讀請移步到swift教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 女人裸体让男人桶全过程 | 黄片一级毛片 | 欧美交在线 | 91久久久久久久久久久久久 | 色婷婷久久久 | 免费国产自久久久久三四区久久 | 麻豆视频免费网站 | 在线看小早川怜子av | 欧美日韩免费一区 | 国产在线观看一区二区三区 | 在线成人免费网站 | 国产精品久久久久久久午夜片 | 中文字幕在线播放不卡 | 黄色成人小视频 | 泰剧19禁啪啪无遮挡大尺度 | 牛牛碰在线视频 | 日本精品视频一区二区三区四区 | 毛片成人网 | 成人午夜久久 | 一区国产在线观看 | 黄色特级一级片 | 亚洲国产成人久久一区www妖精 | 中国av免费在线观看 | 91精品国产综合久久婷婷香 | 91久久久久久久 | 伊人午夜 | japanese javhd | 亚洲第一男人天堂 | 在线成人免费观看视频 | 久草成人在线 | 久久9色 | 91精品免费观看 | 欧美女同hd| 欧日韩| 素人视频在线观看免费 | 一级做受大片免费视频 | 国产午夜精品在线 | 久久久久久久免费精品 | 欧美日韩手机在线观看 | av在线免费看网站 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 |