使用guard语句查看是否有错误

时间:2016-12-13 13:02:21

标签: swift

我们使用guard确保在我们进一步深入之前存在一些有用的数据,我们可以使用guard检查错误是否存在并提前退出?或者只是标准if声明。

endpoint?.getArray() { data, error in
    guard error == nil else {
      print(error!)
      return 
    }

    guard let data = data else {
      print("no data")
      return 
    }

     print(data[0])
}

修改

如果使用if语句,它会更好地阅读吗?

endpoint?.getArray() { data, error in
    if error != nil {
      print(error!)
      return 
    }

    guard let data = data else {
      print("no data")
      return 
    }

     print(data[0])
}

2 个答案:

答案 0 :(得分:2)

  • 如果您希望稍后在代码中使用绑定的解包值,guard基本上是必不可少的。

  • 如果在条件评估为true时使用if let,则在退出前需要展开的值。

  • 对于其他一切而言,这只是一种品味问题。

答案 1 :(得分:-1)

后卫需要“返回”,这就是你想要的。如果你“忘记”了回报,那么使用'if'可能会有问题......