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

时间:2016-10-18 13:28:01

标签: swift3 null-coalescing-operator

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

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

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

1 个答案:

答案 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]()