字典的介绍
- 字典是由键值(
key:value
)对组成的集合 - 字典中的元素之间是无序的
- 字典是由两部分集合构成的,一个是键集合,一个是值集合
- 字典是通过访问键间接访问值的
- 键集合是不能有重复元素的,而值集合是可以重复的
- Swift中的字典类型是
Dictionary
,也是一个泛型集合
字典的初始化
- Swift中的可变和不可变字典
- 使用let修饰的字典是不可变字典
- 使用var修饰的字典是可变字典
// 定义一个可变字典
var dict1 : [String : Any] = [String : Any]()
// 定义一个不可变字典
let dict2 : [String : Any] = ["name" : "zhangsan", "age" : 18]
- 在声明一个Dictionary类型的时候可以使用下面的语句之一
var dict1: Dictionary<Int, String>
var dict2: [Int: String]
- 声明的字典需要进行初始化才能使用,字典类型往往是在声明的同时进行初始化的
// 定时字典的同时,进行初始化
var dict:[String : Any] = ["name" : "zhangsan", "age" : 18]
// Swift中任意类型用Any表示
var dict : Dictionary<String, Any>
dict = ["name" : "zhangsan", "age" : 18]
字典的基本操作
dict.count
dict.isEmpty
dict["height"] = 1.80
dict["weight"] = 70.0
print(dict)
dict.removeValue(forKey: "height")
print(dict)
//方式一
dict["name"] = "lisi"
//方式二
dict.updateValue("lisi", forKey: "name")
print(dict)
// 可选型
dict["name"]
字典的遍历
for value in dict.values {
print(value)
}
for key in dict.keys {
print(key)
}
//常用
for (key, value) in dict {
print("\(key) --- \(value)")
}
//输出的不是key-value,而是索引和(key:value)
for (index, value) in dic.enumerated() {
print("\(index) -- \(value)")
//0 -- (key: "name", value: "zhangsan")
//1 -- (key: "age", value: 18)
}
字典的合并
// 字典的合并
var dict1: [String : Any] = ["name" : "zhangsan", "age" : 20]
var dict2: [String : Any] = ["height" : 1.80, "phoneNum" : "18888888888"]
// 字典合并不能像数组那样直接用+
for (key, value) in dict2 {
dict1[key] = value
}
print(dict1) //["phoneNum": "18888888888", "name": "zhangsan", "age": 20, "height": 1.8]