在 Swift 语言简明教程(五) - 列表类型 中, 我们了解了 Swift 中列表类型的用法,现在我们来了解一下 Swift 中的字典类型 - Dictionary。
字典用来存储健、值对。
声明及初始化
声明字典[param1:param2]这种结构用于表示字典类型 param1为键类型 param2为值类型, 如:
1 | var dic1:[Int:String] |
也可以使用:
1 | var dic2:Dictionary<Int,String> |
这种方式和[:]效果一样 因此:dic2与dic1为相同的类型
在创建字典时,也可以不显示声明字典的类型,可以通过赋初值的方式来使编译器自动推断
1 | var dic3 = ["1":"one"] |
也可以先声明,再赋值,比如为上面声明的 dic1 和 dic2 进行赋值
1 | dic1 = [1:"1",2:"2",3:"3"] |
也可以创建空的字典
1 | var dic4:[Int:Int] = [:] |
判断元素个数
使用 count 属性
1 | dic1.count |
判断字典是否为空
使用 isEmpty 属性
1 | if dic4.isEmpty{ |
基本存取操作
- 通过key获取值
1
print(dic1[1])
为了避免字典中不存在某个 Key, 而导致取出来的值为空的情况,也可以采用我们在 可选型 取值的方法(if let),如下:
1 | if let value = dic2[1] { |
- 修改值
1 | dic1[1]="0" |
- 添加一对新的键值
1 | dic1[4] = "4" |
字典是没有顺序,并且Key不一定是整数
使用 updateValue 更新值
1 | dic1.updateValue("1", forKey: 1) |
该方法看起来和直接赋值的结果相同,但该方法其实还有一个放回值,这样就可以在更新的同时获取原来的值,如:
1 | if let oldValue = dic1.updateValue("One", forKey: 1) { |
删除元素
- 通过 key 删除元素
1 | dic1.removeValue(forKey: 1) |
- 删除所有元素
1 | dic1.removeAll() |
遍历元素
- 通过键来遍历字典
1 | for item in dic2.keys { |
- 通过值来遍历字典
1 | for item in dic2.values { |
- 直接遍历字典
1 | for item in dic2 { |
或
1 | for (key,value) in dic2 { |
下一步
接下来,我们将简要的介绍 Swift 中的集合类型 - 集合(Set))。