在 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]()
在下面的代码中实现,如果我的字典没有键 "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]()