如何检查swift字典中的键是否等于值



假设我有这本字典

var myDic = ["Item" : " Item1", "Item2" : " Item3"]

如何编写if语句来检查Item和Item1是否是键值对?

根据https://developer.apple.com/documentation/swift/dictionary

每个字典都是键值对的无序集合。你可以使用for in循环迭代字典,分解每个键值对转换为元组的元素。

这意味着您可以编写以下代码:

let myDict = ["Item" : " Item1", "Item2" : " Item3"]
for (key, val) in myDict {
if (key == "Item2" && val == " Item3") {
print("match!") //prints match!
}
}

这显然是一种";天真的";方法,其中值在if语句中进行硬编码。单行替代方案:

print(myDict.contains(where: { $0.key == "Item2" && $0.value == " Item3" })) //true

假设你需要检查两双鞋。然后您可以使用KeyValuePairs,它可以保留顺序并简单地迭代:

let toFind: KeyValuePairs = [ "Item2" : " Item3",  "Itemx" : " Item4"]
for tup in toFind {
print(myDict.contains(where: { $0 == tup })) //true, false
}  

如果你想遵循这种方法,我建议你阅读Dictionary和KeyValuePairs之间的重要区别https://developer.apple.com/documentation/swift/keyvaluepairs

最新更新