If statement 在Swift中的if语句中使用let
关键字let用于定义Swift中的常量。但我一直发现在if语句中使用let,我一直在想为什么会这样,或者至少这有什么好处 例如,在本代码中:If statement 在Swift中的if语句中使用let,if-statement,swift,If Statement,Swift,关键字let用于定义Swift中的常量。但我一直发现在if语句中使用let,我一直在想为什么会这样,或者至少这有什么好处 例如,在本代码中: if !session.setActive(false, error: &error) { println("session.setActive fail") if let e = error { println(e.localizedDescription) return } } 为什么在
if !session.setActive(false, error: &error) {
println("session.setActive fail")
if let e = error {
println(e.localizedDescription)
return
}
}
为什么在此语句中使用let进行错误测试:如果let e=error
我理解为什么错误需要测试,所以我们可以确保我们能够获得本地化的解决方案,但我不理解为什么我们不能只做以下事情:
if error {
println(error.localizedDescription)
除了这个例子之外,我还注意到let在许多其他if语句中使用。这样做有什么好处?我很想知道它背后的想法
最后,可以用同样的方法在if语句中使用var吗?该过程称为可选绑定。您可以使用它来检查案例中的可选错误是否包含值,如果是,则将该值指定给案例中的绑定常量e
您也可以使用var而不是let将值绑定到变量而不是常量:
if var error = error {
// Do something with error
println(error.localizedDescription)
return
}
请注意,我在上面的代码段中使用了相同的名称错误。在if块中,错误不再是可选类型。也可以使用相同的名称:
if let error = error {
println(error.localizedDescription)
return
}
建议阅读:我认为OP的问题是,我们已经有了一个非常好的变量错误,所以为什么要将它重新绑定为e…事实上,当我们可以做if error时,为什么让e=error呢?是什么让let e=错误比错误更安全!当在if语句中进行测试时?@Jimmery如果你出错了!如果可选项没有值,则会发生运行时错误。这正是我们想要避免的。