打开可选类型的最佳方法

时间:2016-07-14 04:40:55

标签: swift

我有一个情况

let a: Int? = getFromSomewhere()
if a == nil {
    return
}
let b = a!

我不喜欢太多层。但我觉得这不优雅。 你有更优雅的方式吗?

2 个答案:

答案 0 :(得分:5)

忽略a,省略零检查,省略强制解包;一行:

guard let b = getFromSomewhere() else {return}

答案 1 :(得分:3)

您还可以使用guardif 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