gpt4 book ai didi

ios - 如何合并两个复杂的字典

转载 作者:搜寻专家 更新时间:2023-11-01 07:21:11 26 4
gpt4 key购买 nike

我很好奇如何组合两个字典,其中一个字典包含键和数组或另一个字典作为值。

用于简单的组合例如

    var dict1 = ["bbb":"dict1",
"her": "dict1"]

let dict2 = ["aaa":"dict2",
"her": "doct2",
"bob": "doct2"]

dict1 += dict2 // result is as I expected


func += <K, V> (inout left: [K:V], right: [K:V]) {
for (k, v) in right {
left.updateValue(v, forKey: k)
}
}

但是当我想合并更复杂的字典时,问题就出现了,例如

var dict1 = ["bbb":"dict1",
"her": "dict1"]


let complexDict2 = ["aaa":"dict2",
"her": "dict2",
"arr": ["one", "two"]]


dict1 += complexDict2 // in here method which override '+=' operator for dictionaries does not work anymore...

我的问题是你们是否有经过验证的方法来组合更复杂的词典?

更新

组合 dict1 和 complexDict2 的预期结果是:

let resultDict    = ["aaa":"dict1",
"aaa":"dict2",
"her": "dict2",
"arr": ["one", "two"]]

最佳答案

这里的问题在于dict1complexDict2的类型。

dict1 被推断为类型 [String : String],而 complexDict2 被推断为类型 [String : Any ]

如果您在 dict1 上明确指定类型注释,您的代码就可以正常工作:

var dict1: [String : Any] = [
"aaa":"dict1",
"her": "dict1"
]

关于ios - 如何合并两个复杂的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38903493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com