Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 使用guard语句查看是否存在错误_Swift - Fatal编程技术网

Swift 使用guard语句查看是否存在错误

Swift 使用guard语句查看是否存在错误,swift,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

我们使用
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])
}
  • 基本上,
    guard
    几乎是必不可少的,如果您想在以后的代码中使用绑定的unwrapped值

  • 如果您需要在退出之前,当条件计算为
    true
    时,使用
    If let

  • 至于其他一切,这都是品味的问题


    • guard需要一个“返回”,这是您想要的。如果“忘记”返回,则使用“如果”可能会出现问题…

      只需使用“如果”。这就是守卫的工作原理。Guard是一个可选的活页夹,就像
      如果让你去做的话。将
      return
      语句放在
      print
      之后@ValyLeanGroup
      guard
      也可用于布尔表达式。问题是什么?我们是否可以使用
      guard
      检查是否存在错误并退出范围您的代码似乎正在执行此操作。有什么问题吗?