Swift中的字典
2019-10-08 本文已影响0人
下班不写程序
- 使用 let 定义 不可变字典.
2.使用 var 定义 可变字典.
3.字典也是使用 [] 来表示.
1. 字典的定义、取值、赋值、移除
func demo(){
// 1. 定义一个OC 中的字典, key/value 都是字符串
let dict = ["name": "老张", "age": "18"]
print(dict) // 结果: ["name": "老张", "age": "18"]
// 2. 初始化一个 不可变的 指定类型的空字典
let dict4 = [String: String]()
let dict5: [String: String] = [:]
let dict6: Dictionary<String, String> = [:]
let dict7 = Dictionary<String, String>()
// 3. 定义一个指定类型的字典, key/value 都是字符串
let dict2: [String: String] = ["name": "老张", "age": "18"]
print(dict2) // 结果: ["name": "老张", "age": "18"]
// 4. 定义一个指定类型的字典, 名字是String, 年龄是Int, 这种方式也是最常用的字典类型
let dict3: [String: Any] = ["name": "老张", "age": 18]
print(dict3) // 结果: ["name": "老张", "age": 18]
// 5. 通过key 获取value
let name = dict3["name"]
print(name) // 结果:Optional("老张")
// 6. 定义一个可变的空字典, 参考第二知识点内容:
var dictM: [String: Any] = [String: Any]()
// 7. 通过key移除value, 或者直接将对应key的value直接置位nil
var dictM2: [String: Any] = ["name": "老张", "age": 18]
dictM2.removeValue(forKey: "name")
print(dictM2) // 结果:["age": 18]
// 或者
// dictM2["name"] = nil
// print(dictM2) // 结果:["age": 18]
/* 注意:
通过 key 赋值 value, 如果 key存在与字典中, 直接对 value重新赋值; 若 key不存在与字典中, 直接添加一对新的键值对. (五星重点!!!!!)
*/
}
2. 字典的遍历(无序)
func demo(){
let dict: [String: Any] = ["name": "老张", "age": 18]
// for -in 遍历
for (k, v) in dict {
print(k,v)
}
/*
结果:
name 老张
age 18
注意: 循环中的()里, 不管起什么名称, 第一位永远是key, 第二个永远是value
*/
}
3. 字典的合并
func demo(){
let dict1 = ["name": "Tom"]
var dict2: [String: Any] = ["sex": "man", "age": 18]
// 合并的奥义: 就是遍历少元素个数字典, 添加到另一个字典里
for (k, v) in dict1 {
dict2[k] = v
}
print(dict2)
// 结果:["name": "Tom", "sex": "man", "age": 18]
// 分析:通过 key 赋值 value, 如果 key存在与字典中, 直接对 value重新赋值; 若 key不存在与字典中, 直接添加一对新的键值对.
}