检查字典是否包含Swift中的值
发布时间:2020-12-14 04:28:47 所属栏目:百科 来源:网络整理
导读:只是简单的任务.我有一个字典var types = [Int:String](),它像一个空的,在一些用户操作后,它填充数据.根据此词典中的空白或某些特定数据,我启用/禁用UI中的按钮. 检查空虚很容易,但如何检查字典是否包含某些值? 编译器建议我使用谓词占位符: types.contai
只是简单的任务.我有一个字典var types = [Int:String](),它像一个空的,在一些用户操作后,它填充数据.根据此词典中的空白或某些特定数据,我启用/禁用UI中的按钮.
检查空虚很容易,但如何检查字典是否包含某些值? 编译器建议我使用谓词占位符: types.contains(predicate: ((Int,String)) throws -> Bool>) 解决方法
由于您只想检查给定值的存在性,因此可以对字典的值属性应用contains方法(给定本机Swift字典),例如:
var types: [Int : String] = [1: "foo",2: "bar"] print(types.values.contains("foo")) // true 正如@njuri: answer中所提到的,利用字典的values属性似乎会产生开销(我自己没有验证过)w.r.t.只是直接针对每个Dictionary元素的键值元组中的值条目检查包含谓词.由于Swift很快,所以这不应该是一个问题,除非你正在使用一个庞大的字典.无论如何,如果您想避免使用values属性,您可以查看前面提到的答案中给出的替代方法,或者使用另一个替代方法(字典扩展),如下所示: extension Dictionary where Value: Equatable { func containsValue(value : Value) -> Bool { return self.contains { $0.1 == value } } } types.containsValue("foo") // true types.containsValue("baz") // false (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |