Swift 集合類型

來源:互聯網
上載者:User

標籤:style   blog   color   使用   strong   資料   io   for   

 Swift語言提供數組和字典的集合類型

 

 Swift 語言裡的數組和字典中儲存的資料實值型別必須明確 ,即數組中只能存放同類型的資料。

1: 數組 

數組的建立

var shoppingList: String[] = ["tset", "hell", “hell”]var arrayInt:Int[] = [1, 3]

var arrayIntEx  = [55, 32]//使用推理類型

//空數組的建立

 var someInts = Int[]()
 println("\(someInts.isEmpty)")
//建立指定類型(Double)和個數(3)並設定初始值(0.0)
 var threeDoubles = Double[](count: 3, repeatedValue:0.0) 

數組的訪問用下標訪問。下標從0開始,注意不要越界了。

var arrayIntEx  = [1, 3]arrayIntEx[1] = 99println("\(arrayIntEx[1])")

數組的可修改性是依賴var或者let控制的

數組元素個數使用 count ,isEmpty檢測是否位空數組

var arrayIntEx  = [1, 3]let count = arrayIntEx.countlet bFlag = shoppingList.isEmptyprintln("\(count)\n\(bFlag)")

數組元素追加  append 。必須是var類型數組,而且追加的元素類型要和數群組類型一致。同時也可以用 += 操作

var arrayIntEx  = [1, 3]arrayIntEx.append(8)arrayIntEx += 9arrayIntEx += [55, 66]println("\(arrayIntEx[2])\n\(arrayIntEx[3])\n\(arrayIntEx[4])\n\(arrayIntEx[5])\n")

數組元素指定索引號插入 insert().insert在指定索引號的時候,最大為原有元素個數+現插入的元素個數-1,這樣類似於在末尾添加。insert插入後,原有的元素後移動。

var arrayIntEx  = [1, 3]arrayIntEx.insert(5, atIndex:2)println("\(arrayIntEx)")

數組指定索引號刪除 removeAtIndex

var arrayIntEx  = [1, 3, 9]arrayIntEx.removeAtIndex(1)println("\(arrayIntEx)")

 

數組遍曆用 for in 

var arrayIntEx  = [1, 3, 9]for item in arrayIntEx {    println("\(item)")}

如果要使用索引號和值,那用enumerate 

var arrayTest = ["ax", "bx", "sx", "sxx"]for (index, value) in enumerate(arrayTest) {  println("Item: \(index + 1): \(value)") }

 數組拼接 如果兩個數群組類型一樣,可以用+做拼接。當然結果的順序和你拼接的時候的順序時一致的

var arrayIntFirst = [2, 5]var  arrayIntSecond = [6, 77]var arrayRes =  arrayIntSecond +  arrayIntFirstprintln("\(arrayRes)")

 

2:字典

Swift 的字典使用時需要具體規定可以儲存鍵和實值型別 ,字典儲存時沒有順序的,它依賴於一個可以雜湊的keyValue值來尋找。估計它是把keyValue雜湊後作為key建立的紅黑二茬樹來尋找的。

字典使用 Dictionary<KeyType, ValueType>定義 .KeyType要求可以雜湊的,ValueType在一個字典裡類型必須一致

字典建立

var airports: Dictionary<Int, String> = [1: "yamide",2: "soga"]//顯示類型說明var dicDefault = [2:"xx", 33:"oo"]//使用了型別推斷,這裡比較特殊的是 2和3 不能用 2.0 和 3 ,它不支援類型的轉換推理的
var namesOfIntegers = Dictionary<Int, String>()//空數組的建立
var dicEmpty = [:]

字典的可否修改時依靠var和let控制的

字典元素個數使用count 屬性可以得到

var dicDefault = [2:"xx", 33:"oo"]println("\(dicDefault.count)")

字典元素的更新。可以用下標關鍵字添加

var dicDefault = [2:"xx", 33:"oo"]dicDefault[22] = "tt"println("\(dicDefault)")

如果下標添加的key是字典裡已經有的,那麼它會update資料.

updateValue(forKey:)方法可以設定或者更新特定鍵對應的值 .如果keyValue沒有就添加,字典中已經有則更新

 

var dicDefault = [1:"xx", 2:"oo"]dicDefault[3] = "tt"dicDefault.updateValue("sx", forKey:4)//adddicDefault.updateValue("sbcd", forKey:2)//update

刪除  removeValueForKey 

var dicDefault = [1:"xx", 2:"oo"]dicDefault[3] = "tt"dicDefault.updateValue("sx", forKey:4)dicDefault.removeValueForKey(2)println("\(dicDefault)")

字典遍曆 可以使用for in 遍曆字典索引值對。以元組形式返回

var dicDefault = [1:"xx", 2:"oo"]for(key, value)in dicDefault {    println("key:\(key) value:\(value)\n")}

字典可以用 values 返回所有值 keys返回所有關鍵字

var dicDefault = [1:"xx", 2:"oo"]var keys = dicDefault.keysvar values = dicDefault.valuesfor key in keys {    println("key:\(key)\n")}for value in values {    println("value:\(value)\n")}

 

 

相關文章

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.