gpt4 book ai didi

swift - 对 Contains 和 Dictionary/[String :String] 的类型问题感到困惑

转载 作者:搜寻专家 更新时间:2023-11-01 05:38:14 27 4
gpt4 key购买 nike

使用 swift 2.x

我正在努力将 Contains 与两个字典数组一起使用。我不断收到以下异常,但我不完全确定原因:

 "Cannot convert value of type '[String : String]' to expected 
argument type '@noescape ([String : String]) throws -> Bool'"

代码:

 var d1: [[String:String]] = [["k1": "v1"], ["k2": "v2"]]
var d2: [[String:String]] = [["k1": "v1"], ["k3": "v3"]]

d1 = d1.filter { (element) -> Bool in
return !d2.contains(element)
}

Screenshot of code and exception

当我改用类似...的东西时

d1 = d1.filter { (d1_entry) -> Bool in
for d2_entry in d2 {
if d2_entry == d1_entry {
return false
}
}
return true
}

一切正常,但是......对于看起来应该是等效逻辑的东西来说,这是非常笨拙和冗长的......?

我知道我在这里遗漏了一些非常明显/基本的东西,但我不确定是什么/在哪里/为什么。

非常感谢任何建议

最佳答案

你没有正确实现 contains() 闭包它应该是这样的:

var d1: [[String:String]] = [["k1": "v1"], ["k2": "v2"]]
var d2: [[String:String]] = [["k1": "v1"], ["k3": "v3"]]

d1 = d1.filter { (element) -> Bool in
return !d2.contains({ (element) -> Bool in
// Define condition
})
}

关于swift - 对 Contains 和 Dictionary/[String :String] 的类型问题感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34317939/

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