今天的部落格中就總結一下關于Swift中相對Objc新添加的兩個資料類型:元組(Tuple)和可選值類型(Optional)。上面這兩個類型是Swift獨有的類型,使用起來也是非常友善的,今天就通過一些示例來介紹一下如何初始化和使用元組和可選值類型以及使用元組和可選值類型的場景。廢話少說,直奔主題,在今天的示例代碼中仍然是使用Playground來測試的。左邊是代碼,右邊是Playground中的結果。
一、Swift中的元組(Tuple)
元組類似于C語言中的結構體(Struct),用來存儲一組相關的值,并且允許這些相關值的類型不同。元組一般在數組傳回多個值的時候使用。
1. 直接定義元組,不指定元組中元素的類型。定義元組的文法是直接使用一對小括号,括号中是由逗号分開的各個值。具體如下所示:

2.取出元組中的值,方式一:直接指派給相應的常量(或者變量),下面這行代碼就是直接把元組指派給常量,在Swift中字元串之間的連接配接可以使用+号運算符。經過下面的語句就會把元組的值一次指派給我們定義的常量。一句話概括:"一個蘿蔔一個坑,對号入座"。
3.還可以通過元組的下标索引來擷取元素的值,元組的下标是從零開始的,下面是通過元組的下标來擷取元組的元素值的。
4.我們還可以顯式的指定元組的每個元素的類型,下面就為元組student1每個元素指定了資料類型,前兩個是字元串類型,後兩個是整型。如果你嘗試着給字元串類型的元素指派整型資料,則編譯器會報錯,同時會提示元組每個元素指定的資料類型。
5.給元組的每個元素賦上正确的值,就會在Playground上顯示出每個元素應有的值。
二、Swift中可選類型(Optional)
可選類型是Swift中新的類型,可選類型使得Swift的資料類型更為安全,可選類型可以說在Swift中扮演着重要的角色,它使得你的代碼更為健壯,下面将會給出可選類型的使用場景。可選值,用大白話解釋就是不确定這個變量或者常量中是否有值(有可能為nil),是以這個變量或常量的值是可選的。下面對optional進行詳細介紹。
1.可選值類型是可以直接指派nil,為了類型安全而普通的變量和常量是不可以直接指派nil的如下所示:
2. 定義可選值類型的文法是在類型聲明後添加一個?号,說明這個變量的值是不确定的,是以喽就添加了一個?号。下面就是給可選值類型賦一個nil, 是不會報錯的。
3.給可選類型變量賦一個值後,如果要使用這個可選變量的值,需要使用感歎号(!)強制打開,如果不使用感歎号(!)強制打開,編譯器會報錯。為什麼要用感歎号強制打開可選變量的值呢? 原因很簡單,因為可選類型的值有可能為nil, 使用感歎号(!)強制打開的原因是告訴編譯器"這個可選變量的值不為空,我要使用它”,強制打開後,在使用可選變量的值時,編譯器就不會報錯了。
下面optionalValue是可選類型的變量,并且把“ludashi”指派給它,如果不使用!強制打開optionalValue的值的話,編譯會抛紅報錯。
4.來看一下可選類型的使用場景以及使用小執行個體。
(1)把字元串轉換成整數時我們要用可選類型的變量(或者常量)來接受,因為我們不确定是否轉換成功了,然後經過非空判斷後,再使用感歎号(!)強制打開進行使用。
下面把一個數字字元串轉換成整數,然後使用一個變量去接收,然後去判斷這個變量是否為空,不為空就強制打開進行使用,下圖轉換後不為nil就會被強制打開然後使用。
下面是轉換後為nil的情況, 就不會做處理,因為判斷為nil, 是以就不做處理。
(2)當你使用某個類的某個方法時,你不确定該類是否有這個方法,可以使用?來打開該可選值,然後再調用該類的方法。?号就是告訴編譯器你不知道該類是否有該調用的方法,如果有就調用,如果沒有就忽略。如下執行個體所示:
如果numberInteger為nil的話, 就不會調用isEmpty, resultEmpty就會被指派成nil,如下所示。
關于元組和可選類型的使用還得在項目中結合具體的應用場景來使其發揮更大的作用,本篇部落格就先通過一些小的執行個體來看一下元組和可選類型的使用方法和使用場景,舉一反三才是最重要的。今天的部落格就到這吧。
作者:青玉伏案
出處:http://www.cnblogs.com/ludashi/
本文版權歸作者和共部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
如果文中有什麼錯誤,歡迎指出。以免更多的人被誤導。
收履歷:某網際網路公司,招聘iOS/Android靠譜工程師,入職後,可内部聯系樓主,有小禮品贈送,有意者可郵箱投遞履歷:[email protected]