# 10.Swift字典

# 字典的介绍

  • 字典是由键值 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]
Last Updated: 2/22/2020, 3:21:49 PM