今天的部落格中就總結一下關於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,如下所示。
關於元組和可選型別的使用還得在專案中結合具體的應用場景來使其發揮更大的作用,本篇部落格就先通過一些小的例項來看一下元組和可選型別的使用方法和使用場景,舉一反三才是最重要的。今天的部落格就到這吧。
打賞支援我寫出更多好文章,謝謝!
打賞作者
打賞支援我寫出更多好文章,謝謝!