標籤: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")}