且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

检查 [Type:Type?] 类型的字典中是否存在键

更新时间:2023-11-25 23:22:40

其实你的测试dictionary[key] == nil 可以用来检查如果字典中存在键.它不会产生 true 如果值设置为 nil:

Actually your test dictionary[key] == nil can be used to check if a key exists in a dictionary. It will not yield true if the value is set to nil:

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

要区分字典中不存在键"和键的值为零",您可以做一个嵌套的可选赋值:

To distinguish between "key is not present in dict" and "value for key is nil" you can do a nested optional assignment:

if let val = dict["key"] {
    if let x = val {
        println(x)
    } else {
        println("value is nil")
    }
} else {
    println("key is not present in dict")
}