美文网首页
Swift 字典2: 常用高阶函数

Swift 字典2: 常用高阶函数

作者: YourSummer | 来源:发表于2022-05-17 10:56 被阅读0次
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"]
持续更新......

相关文章

网友评论

      本文标题:Swift 字典2: 常用高阶函数

      本文链接:https://www.haomeiwen.com/subject/fxywurtx.html