如何判断字典中是否存在密钥?我的字典是[Type:Type?]型的.

我不能简单地判断dictionary[key] == nil,因为这可能是因为值为nil.

有什么 idea 吗?

推荐答案

实际上,你的测试dictionary[key] == nil can将用于判断

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

要区分"dict中不存在键"和"键的值为零",您需要

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

Swift相关问答推荐

WWDC Swift并发会话中的厨房服务示例令人困惑

UITableView未显示类数组数据

如何禁用MacOS上SwiftUI中按钮周围的聚焦环(或高亮显示)?

如何在init()中使用setter/getters?

在Swift中,是否只有iOS版本超过15才能导入Swift包?

Swift-Can无法在AudioKit中找出简单的麦克风效果-文件链

从Firebase播放音频文件不起作用

当模式以编程方式关闭时在父视图控制器中触发操作

如何从UIKit中的AttributeContainer获取属性并将其分配给某个变量

为什么变量不存储在 Swift 的过程数据区中

为什么Swift可以在没有足够信息的情况下推断类型?

为什么我的 tableView 没有推送到 tableView 内的 detailViewController?

我如何读取并通知可可 macos 中某个类的计算(computed)属性?

为什么 NumberFormatter 在 Swift 中将 19,999,999,999,999,999 格式化为 20,000,000,000,000,000?

如何从数据中读取以空结尾的字符串?

SwiftUI View Builder 参数无法更改状态

swiftui更改显示的 Select 器值

SwiftUI:从存储在 observableObject 中的数组中删除对象时查看崩溃

用于 Swift 编码的 iOS 应用程序的 Ffmpeg

如何更改弹出框的大小