在 swift 3.0 中使用 nil 合并时,没有得到预期的结果

When in swift 3.0 nil coalescing used, didn't get expected result

在下面的代码中实现,如果我的字典没有键 "key1",那么 value1 应该用空白字典 [:] 初始化,代码执行但永远不会进入 if-let 块。

建议正确的解决方案,以防我以错误的方式使用 nil 合并

if let value1 = ((dataDict["key1"] as? Dictionary<String,Any>?) ?? [:]){
print(value1) 
}

无需将 if - let 与 nil 合并运算符

结合使用
let value1 : Dictionary<String,Any> = dataDict["key1"] as? Dictionary<String,Any> ?? [:]
print(value1) 

或更短

let value1 = dataDict["key1"] as? [String:Any] ?? [String:Any]()