窺探Swift之新添資料類型元組與可選值

來源:互聯網
上載者:User

標籤:

  今天的部落格中就總結一下關於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,如下所示。

 

  關於元組和可選類型的使用還得在項目中結合具體的應用情境來使其發揮更大的作用,本篇部落格就先通過一些小的執行個體來看一下元組和可選類型的使用方法和使用情境,舉一反三才是最重要的。今天的部落格就到這吧。

窺探Swift之新添資料類型元組與可選值

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.