【发布时间】:2017-06-27 13:21:50
【问题描述】:
在 Swift 中我们可以比较 optionals,我们也可以比较字典,但是如何比较 optional Dictionaries?
var dict: [String: String]? = [
"name" : "A name",
"email" : "an@email.com"
]
var dict2 = [
"name" : "A name",
"email" : "an@email.com"
]
if dict2 == dict { // Error line: Value of optional type '[String : String]?' not unwrapped; did you mean to use '!' or '?'?
}
这不会编译并迫使我们打开字典。有什么干净的解决方案吗?
【问题讨论】:
-
dict2 == dict是一个逻辑评估,而不是一个赋值......dict是一个未包装的可选,而dict2已被包装 最初......那么你想在这里实际做什么? -
与Why is Equatable not defined for optional arrays 中的问题基本相同——仅针对字典而不是数组。
-
最简洁的解决方案是将此数据表示为结构。在这里使用字典有什么特别的原因吗?
标签: swift dictionary compare optional