swift學習之元組

來源:互聯網
上載者:User

標籤:

  元組在oc中是沒有的,在swift中是新加的,學oc數組概念時還在想既然可以儲存相同類型的元素,那不同類型的元素有沒有東西儲存呢,答案很悲傷,oc沒有元組這個概念,不過swift中添加了這個東西,也挺有意思的,下面就我個人說一下對元組的理解,如果有不對的,請指出,共同進步,謝謝

  元組(touples)就是可以儲存不同資料類型的一個集合,用()表示,舉個栗子

        let touples = ("xiaoyu",16,"math",98.5)
        println(touples)

看到提示就應該知道我們可以通過touples.0或者.1或者.2或者.3來訪問元組的元素,由swift的類型推斷就知道對應的資料類型

我們也可以用第二種方法建立元組

let (name,_,_,score) = touples

上面的_在swift中是萬用字元,記做忽略的意思,就是你不需要對應的值,用不著

        println(name)
        println(score)

其實我個人更喜歡第三種方式,清晰明了,代碼更易讀

        let touple = (name:"xiaoyu",age:16,souce:"math",scores:98.5)
        println(touple.name)

說了上面一大推,我還是不知道元組可以幹嘛,巴拉巴拉,只知道怎麼建立,讀取等等,那麼我們這個元組小夥伴可以做些啥事啊,下面舉個小栗子

 

override func viewDidLoad() {              var touple = (name:"xiaoyu",age:16,souce:"math",scores:98.5)        println(touple.name)        swapMe(&touple.name, b: &touple.souce)        println(touple)           }    func swapMe<T>(inout a:T,inout b:T){        let temp = a        a = b        b = temp    }
通過上面的代碼我們就偷偷把math和name交換了,(注意,這裡只能交換形同的類型,T是一種泛型表達),但是我們學了元組就可以這樣寫了

    func swapMe<T>(inout a:T,inout b:T){        (a,b) = (b,a)    }

恩,可以達到相同的效果,不信,再來一個數組做實驗

        var tempArr = [5,7]        swapMe(&tempArr[0], b: &tempArr[1])        println(tempArr)

恩,這回真心可以了

還有就是元組真心放什麼都可以啊,不信可以試試下面的操作

        var num = 42        println(num)        println(num.0.0.0.0)
元組另一個有用的地方就是錯誤處理了,可以把錯誤直接放在元組裡面返回





參考:喵神的書

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

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.