如果你想要存储一个项目并想通过一个唯一的键引用该项目,你可以使使用字典。数组中的项目都是有序的,而字典中的项目则是无需的。然而,你可以通过你加入字典时提供的那个key来访问该项目。要创建一个对象,你既要指定键的数据类型,也要指定值得数据类型。如下所示:
vard1:Dictionary<String, Int>
在上面代码中,d1声明为一个字典,其key为String类型, 值为Int型,在你添加项目之前,需要对字典进行初始化:
d1 = Dictionary()
有时,你声明一个字典并使用一个字典字面常量来初始化该字典。一个字典字面常量是一个具有固定的键值对的常量字典。如下:
var webPages =[1:"http://site/home", 2:"http://site/blog",3:"http://site/contact"]
上面代码中创建了一个名为webPages的字典,使用整型值为key并存储字符串类型的网页地址作为值
引用字典项目
要引用字典中的一个项目,你需要在字典名字之后,使用[]包裹一个键值,如下所示:
var webPages =[1:"http://site/home", 2:"http://site/blog",3:"http://site/contact"]
let blogPage = webPages[2]
在上例中,常量blogPage的值为http://site/blog ,因为2这个键指向字符串http://site/blog
更新字典项目
要更新字典中的某一项,你需要先获取该项的引用,然后通过赋值运算符为该项提供一个新的值,如下所示:
webPages[1] ="http://site/home/a"
在这个例子中,你在中括号中提供一个键并通过赋值改变网页的地址。键为其他数据类型(如字符串、浮点型)的字典也可以采用这种方式改变某项的值,如下:
var d2:Dictionary= ["a":"AAAA", "b":"BBBB"]
var d3:Dictionary = [1.1:"AAAA", 1.2:"BBBB"]
d2["a"] = "AAAAaaaa"
d3[1.2] = "BBBBbbbb"
上述代码中,使用字符串类型的键访问d2字典的某一项并改变该项的值,同时也是用浮点型数作为键并改变d3字典某一项的值
要从数组中移除某个项,只需要将该项的值更新为nil就可以了。还有另一种方式,就是调用removeValueForKey()函数,如下:
d2["b"]= nil
d2.removeValueForKey("a")
在上例中,使用removeValueForKey()函数从d2字典中移除了键为a的那一项
遍历字典
要遍历字典的每一项,需要使用for-in循环语句(见第22章),你会在循环中获取键和值得引用,如下:
for (key, value)in d3{
println("key:\(key), value:\(value)")
}
这个循环语句会打印出:
key:1.10000002384186,value:AAAA
key:1.20000004768372, value:BBBBbbbb
如果你只需要遍历键(key),你可以访问字典的key属相,如下:
for key ind3.keys{
println("key:\(key)")
}
上述循环会打印:
key:1.10000002384186
key:1.20000004768372