如何检查字典中是否存在键?我的字典是类型的[Type:Type?]。
[Type:Type?]
我不能简单地检查一下dictionary[key] == nil,因为这可能是由值所导致的nil。
dictionary[key] == nil
nil
有任何想法吗?
实际上,您的测试dictionary[key] == nil 可 用于检查字典中是否存在键。true如果该值设置为,则不会产生nil:
true
let dict : [String : Int?] = ["a" : 1, "b" : nil] dict["a"] == nil // false, dict["a"] is .Some(.Some(1)) dict["b"] == nil // false !!, dict["b"] is .Some(.None) dict["c"] == nil // true, dict["c"] is .None
要区分“字典中不存在键”和“键的值为零”,您可以执行嵌套的可选分配:
if let val = dict["key"] { if let x = val { println(x) } else { println("value is nil") } } else { println("key is not present in dict") }