我有一个情况
let a: Int? = getFromSomewhere()
if a == nil {
return
}
let b = a!
我不喜欢太多层。但我觉得这不优雅。 你有更优雅的方式吗?
答案 0 :(得分:5)
忽略a
,省略零检查,省略强制解包;一行:
guard let b = getFromSomewhere() else {return}
答案 1 :(得分:3)
您还可以使用guard
或if let
来解包选项:
所以代替:
if a != nil {
return
}
let b = a!
if let a = getFromSomewhere() {
// Do what you want with a
} else {
// a is nil
}
并发表警卫声明:
guard let a = getFromSomewhere() else {
NSLog("error a is nil")
return
}
// You can use a now if it's not nil