我们使用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])
}
答案 0 :(得分:2)
如果您希望稍后在代码中使用绑定的解包值,guard
基本上是必不可少的。
如果在条件评估为true
时使用if let
,则在退出前需要展开的值。
对于其他一切而言,这只是一种品味问题。
答案 1 :(得分:-1)
后卫需要“返回”,这就是你想要的。如果你“忘记”了回报,那么使用'if'可能会有问题......