在下面的代码中实现,如果我的字典没有键“key1”,那么value1应该用空字典[:]初始化,代码执行但是永远不会进入if-let块。
建议正确的解决方案,以防我以错误的方式使用零合并
if let value1 = ((dataDict["key1"] as? Dictionary<String,Any>?) ?? [:]){
print(value1)
}
答案 0 :(得分:1)
无需将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]()