。下方创建的都是可变字典,因为我们使用的是var关键字进行修饰的,如果你要创建不可变数组,我们就可以使用let关键字进行创建。关于let创建字典的内容,在此就不做过多的赘述了,因为只需要把下方的var换成let即可。
2. 字典item的增删改查
(1) 查询字典的值(读取)
我们可以通过字典键值对的key来取出key对应的value。 下方的代码是分别取出“大毛”和“小黄”的值,如下所示:
(2)字典的遍历
只取一个值那多不爽呢,下面介绍一下字典的遍历方法。下方是遍历输出字典myDog中所有的key,字典的keys属性是获取字典中所有的key值。
上述代码段输出结果如下,由输出结果可知,每个Value是可选类型的数据:
key: Optional("黄2")
key: Optional("小黄")
key: Optional("大黄")
===============================================================================
上面是获取字典中的所有keys, 那么下面是获取字典中的所有values, 具体代码如下所示:
上述代码段输出的结果值如下:
1 value:黄2
2 value:小黄
3 value:大黄
===============================================================================
接下来就是对字典的整个item进行遍历,每个item遍历出来是一个元组。元组的内容是(key, value)。遍历出来的元组我们就可以通过使用元组的形式来获取字典的key和value。具体代码如下所示:
输出结果如下:
1 元组:(2, "黄2")
2 key: 2
3 value: 黄2
4
5 元组:(3, "小黄")
6 key: 3
7 value: 小黄
8
9 元组:(1, "大黄")
10 key: 1
11 value: 大黄
(3) 字典的修改
字典元素的修改是比较简单的,下方通过两种。第一种是通过key的形式直接给key对应的value赋值,不过这种修改方式是不会返回被修改的值的,具体代码如下:
如果你想在修改值的时候返回被修改的原始值的话,你需要使用updateva lue(forKey:)方法进行元素的修改。该函数是可以返回被修改的原始值的,具体实例如下所示:
(4) 增加元素
往已有的可变字典中增加元素就简单多了,直接通过key就可以给value赋值。在可变字典中,如果key已经存在,那么就变成上面的修改字典的值了。可以这么理解,通过key给value赋值时,如果key存在,就覆盖原有的键值对,如果不存在就添加。下方就是往字典中进行添加元素的语句:
(5)移除元素
下方截图中是所有字典移除元素的方法,
removeAll():移除所有元素。
removeAll(keepCapacity: Bool):移除所有元素, 如果keepCapacity为True,则保留字典原有的存储空间。
removeva lueForkey(key: Hashable): 这个方法是通过key来移除元素的。
removeAtIndex(index: DictionaryIndex<Hashable, Value>):这个是通过Dictionary的索引来删除元素的。但是字典的item是没有顺序的,那么我们怎么获取这个DictionaryIndex呢? 那么我们就会使用到另一个函数,就是indexForKey。具体用法如下,移除元素成功后会以元组的形式返回被删除的值。