一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Swift - Swift中Optional值的鏈式調(diào)用學習筆記

Swift中Optional值的鏈式調(diào)用學習筆記

2020-12-28 13:12琿少 Swift

這篇文章主要介紹了Swift中Optional值的鏈式調(diào)用學習筆記,Optional鏈是Swift入門學習中的基礎知識,需要的朋友可以參考下

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
class Myclass {
  var cls:MyClassTwo?
  
}
class MyClassTwo {
  func run() -> String {
    return "run"
  }
}
 
let obj:Myclass = Myclass()
//將返回nil
obj.cls?.run()

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

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

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

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

示例如下:

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

延伸 · 閱讀

精彩推薦
  • SwiftSwift的74個常用內(nèi)置函數(shù)介紹

    Swift的74個常用內(nèi)置函數(shù)介紹

    這篇文章主要介紹了Swift的74個常用內(nèi)置函數(shù)介紹,這篇文章列舉出了所有的Swift庫函數(shù),內(nèi)置函數(shù)是指無需引入任何模塊即可以直接使用的函數(shù),需要的朋友可...

    Swift教程網(wǎng)5802020-12-19
  • SwiftSwift中轉(zhuǎn)義閉包示例詳解

    Swift中轉(zhuǎn)義閉包示例詳解

    在Swift 中的閉包類似于結(jié)構(gòu)塊,并可以在任何地方調(diào)用,下面這篇文章主要給大家介紹了關于Swift中轉(zhuǎn)義閉包的相關資料,需要的朋友可以參考下...

    小小小_小朋友11412021-12-26
  • Swiftswift where與匹配模式的實例詳解

    swift where與匹配模式的實例詳解

    這篇文章主要介紹了swift where與匹配模式的實例詳解的相關資料,這里附有簡單的示例代碼,講的比較清楚,需要的朋友可以參考下...

    追到夢的魔術師14382021-01-06
  • SwiftSwift能代替Objective-C嗎?

    Swift能代替Objective-C嗎?

    這是我在網(wǎng)上上看到的答案,復制粘貼過來和大家分享一下,因為我和很多人一樣很關心Swift的出現(xiàn)對Mac開發(fā)的影響和對Objective-C的影響。...

    Swift教程網(wǎng)4412020-12-16
  • SwiftSwift使用CollectionView實現(xiàn)廣告欄滑動效果

    Swift使用CollectionView實現(xiàn)廣告欄滑動效果

    這篇文章主要為大家詳細介紹了Swift使用CollectionView實現(xiàn)廣告欄滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Stevin的技術博客12372021-01-13
  • SwiftSwift實現(xiàn)多個TableView側(cè)滑與切換效果

    Swift實現(xiàn)多個TableView側(cè)滑與切換效果

    這篇文章主要為大家詳細介紹了Swift實現(xiàn)多個TableView側(cè)滑與切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    乞力馬扎羅的雪雪5822021-01-08
  • SwiftSwift教程之基礎數(shù)據(jù)類型詳解

    Swift教程之基礎數(shù)據(jù)類型詳解

    這篇文章主要介紹了Swift教程之基礎數(shù)據(jù)類型詳解,本文詳細講解了Swift中的基本數(shù)據(jù)類型和基本語法,例如常量和變量、注釋、分號、整數(shù)、數(shù)值類型轉(zhuǎn)換等...

    Swift教程網(wǎng)5162020-12-18
  • Swiftmac git xcrun error active developer path 錯誤

    mac git xcrun error active developer path 錯誤

    本文主要是講訴了如何解決在mac下使用git;xcode4.6的環(huán)境時,出現(xiàn)了錯誤(mac git xcrun error active developer path)的解決辦法,希望對大家有所幫助...

    Swift教程網(wǎng)2232020-12-16
主站蜘蛛池模板: 亚洲 日韩 自拍 视频一区 | 无码乱人伦一区二区亚洲一 | 91精品国产亚一区二区三区 | 欧美又硬又粗又长又大 | 久操久操久操 | 91在线 一区 二区三区 | 2020韩国三级理论在线观看 | 欧美精品一区二区在线观看 | 操美女网址 | 国产精品久久久免费视频 | 久久成人永久免费播放 | 免费午夜影院 | 天堂成人在线视频 | 99热精品成人免费观看 | 我的妹妹最近有点怪在线观看 | 欧美性野久久久久久久久 | 出差上的少妇20p | 丝袜爆操 | 免费看成年视频网页 | 91久久国产青草亚洲 | 国产在线成人精品 | 日本高h| 粗又长好猛好爽视频 | 国产特级毛片aaaaaa | 国产精品久久久久久久牛牛 | 包臀裙女教师波多野结衣 | 国产伦精品一区二区三区免 | 午夜精品久久久内射近拍高清 | 手机看片日韩1024你懂的首页 | www免费看| 亚洲AV精品一区二区三区不卡 | 国产18在线 | 欧美一区二区三区在线观看不卡 | 性欧美sexvideo另类 | 手机看片www xiao2b cm | 99久久精品免费看国产 | 拔插拔插8x8x海外华人免费视频 | 污小说在线阅读 | 国产成人综合网 | 欧美成人中文字幕在线看 | 夫妻性生活一级黄色片 |