字典是一种存储多个相同类型的值的容器。每个值(value)都关联唯一的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。通过标识符(键)访问数据的时候使用字典,这种方法很大程度上和现实世界中使用字典查字义的方法一样。
Swift 的字典使用Dictionary Key, Value定义,其中Key是字典中键的数据类型,Value是字典中对应于这些键所存储值的数据类型。
创建一个空字典
像数组一样使用构造语法创建一个拥有确定类型的空字典:
var dic = [Int: String]()
//是一个空的 [Int: String] 字典
创建了一个[Int: String]类型的空字典来储存整数的英语命名。它的键是Int型,值是String型。
使用字典字面量来构造字典,和数组字面量拥有相似语法。字典字面量是一种将一个或多个键值对写作Dictionary集合的快捷途径。
一个键值对是一个key和一个value的结合体。在字典字面量中,每一个键值对的键和值都由冒号分割。这些键值对构成一个列表,其中这些键值对由方括号包含、由逗号分割:
var dict:[String:String] = ["1" :"a","2":"b","3":"c"]
print("\(dict)")
//["2": "b", "1": "a", "3": "c"]
dict字典被声明为一种[String: String]类型,这意味着这个字典的键和值都是String类型.
通过字典的方法和属性来访问和修改字典,或者通过使用下标语法。
和数组一样,通过字典的只读属性count来获取某个字典的数据项数量:
print("\(dict.count)item")
//3item
使用下标语法来改变特定键对应的值:
dict["1"] = "d"
print("\(dict)")
//["2": "b", "1": "d", "3": "c"]
另一种下标方法,字典的updateValue(_:forKey:)方法可以设置或者更新特定键对应的值。
dict.updateValue("g", forKey: "3")
print("\(dict)")
//["2": "b", "1": "d", "3": "g"]
字典遍历
使用for-in循环来遍历某个字典中的键值对。每一个字典中的数据项都以(key, value)元组形式返回,并且使用临时常量或者变量来分解这些元组:
for (key,value) in dict
{
print("\(key):\(value)")
}
//2:b
//1:d
//3:g
Swift 的字典类型是无序集合类型。