1. 特殊属性
// 是否是空字典 返回Bool
let isEmpty = dic.isEmpty
// 键值对数量
let count = dic.count
2. map: 转换
var dic: [String: Any] = [
"key_0": 1,
"key_1": "String"
]
//1. 将所有key转换成一个数组返回
let keys = dic.map { (item) -> String in
return item.key
}
print(keys)
log 结果: ["key_1", "key_0"]
//2. 将所有value转换成一个字符串数组返回
let values = dic.map { (item) -> String in
return item.value as? String ?? ""
}
print(values)
// 仅仅转换value, 标准库提供了单独方法
let values = dic.mapValues { (item) -> String in
return item as? String ?? ""
}
print(values)
3. filter: 过滤
// 筛选出 key == "key_0" 的键值对
let newDic = dic.filter { (item) -> Bool in
item.key == "key_0"
}
// 简化写法
let newDic = dic.filter { $0.key == "key_0" }
print(newDic)
4. merge: 合并
var dic: [String: Any] = [
"key_0": 1,
"key_1": "String"
]
var dic_0: [String: Any] = [
"key_1": false,
"key_3": 1,
"key_4": "String"
]
// 将dic 合并到 dic_0, 如果有相同的key, 会以dic为准
//1. 改变dic_0
dic_0.merge(dic) { $1 }
print(dic_0)
// log 结果: ["key_0": 1, "key_4": "String", "key_3": 1, "key_1": "String"]
//2.不改变dic_0, 返回新的字典
let mergeDic = dic_0.merging(dic) { $1 }
print(mergeDic)
// log 结果: ["key_0": 1, "key_4": "String", "key_3": 1, "key_1": "String"]
持续更新......
网友评论