說到swift的集合類型,就不得不談到Dictionary。包含一個鍵值對組合的集合。json
var air = ["name":"warner","title":"Math"] var air = Dictionary<String,String>(minimumCapacity:3)
均可以初始化Dictionary。在swift中,Dictionary實際上是一個結構:struct,繼承自Collection。而Collection是一種協議protocol。他們都不是Objectswift
Dictionary有subscript聲明,因此能夠直接使用下標來獲取或者設置key的value。數組
air["son"] = "edward"
像上面這種經過下標來指定value的寫法,若是存在該key,則直接改寫value,不然,新增這個key-value pairs。另外,還提供了比較雞肋的一種改變value的方法:函數
air.updateValue("andrew", forKey: "son")
與以前的直接經過下標修改value的做用是同樣的。blog
同時,也能夠經過下標的形式來移除對應的key繼承
air["son"] = nil
上面的寫法,會直接把son這個key從Dictionary中移除。另外,也能夠經過removeValueForKey方法來移除ip
air.removeValueForKey("son")
結果同樣的。ci
遍歷整個數據集合的方法與數組相似:rem
for (key,val) in air{ println("\(key):\(val)") }
Dictionary還有2個比較有意思的屬性,能夠直接以數組形式拿到整個Dictionary的keys和valuesit
for key in air.keys{ println("\(key)") } for val in air.values{ println("\(val)") }
總結:
1)Dictionary與json似是而非。經過構造函數初始化必須指定key與value的數據類型,不然值就得指定至少一對key-value pairs。用來肯定這個Dictionary的數據類型。
2)能夠經過下標來肯定對應的key,用來增長或者刪除pairs.
3)能夠直接拉取整個dictionary的keys或者values,來做爲數組操做。
4)能夠使用removeAll方法來清空整個Dictionary.