Dictionary 如何首先实现Swift 3字典(其中:)闭包
我在Swift 3中有一个[String:String]数组,我想根据键是否包含字符串值在该数组中查找特定项Dictionary 如何首先实现Swift 3字典(其中:)闭包,dictionary,filter,swift3,Dictionary,Filter,Swift3,我在Swift 3中有一个[String:String]数组,我想根据键是否包含字符串值在该数组中查找特定项 let result = collection.first(where: ((key, value) -> Bool in return key.contains("mystring"))) 然而,Xcode一直告诉我它是“表达式列表中的预期表达式”。我在谷歌上搜索了一个小时,每个以包含或过滤方式使用此闭包的
let result = collection.first(where: ((key, value) -> Bool in
return key.contains("mystring")))
然而,Xcode一直告诉我它是“表达式列表中的预期表达式”。我在谷歌上搜索了一个小时,每个以包含或过滤方式使用此闭包的网站似乎都是正确的语法
我在这里遗漏了什么?您实际上还没有完成闭包,因为您使用了
()
而不是{}
此外,first(其中:)
的闭包具有类型(Dictionary.Iterator.Element)抛出->Bool
。参数是一个元组,它是迭代的(键,值)
对
请尝试以下方法:
let result = collection.first(where: { pair -> Bool in
return pair.key.contains("mystring")
})
但您可以做一些简化:
Bool
返回类型return
关键字在单表达式闭包中不是必需的对
参数名是任意的,没有意义,因此最好只使用隐式闭包参数let result = collection.first{ $0.key.contains("mystring") }