Jim*_*ery 3 if-statement swift
关键字let用于在 Swift 中定义常量。但我不断发现let它被用在if语句中,我一直想知道为什么会这样,或者至少这样做有什么好处。
例如在这段代码中:
if !session.setActive(false, error: &error) {
println("session.setActive fail")
if let e = error {
println(e.localizedDescription)
return
}
}
Run Code Online (Sandbox Code Playgroud)
为什么在这个语句error中用 a 进行测试: ?letif let e = error
我明白为什么error需要测试,这样我们就可以确保我们能够做到这一点.localizedDesciption,但我不明白为什么我们不能这样做:
if error {
println(error.localizedDescription)
Run Code Online (Sandbox Code Playgroud)
除了这个例子之外,我还注意到它let被用在许多其他if语句中。这样做有什么好处呢?我很想知道其背后的想法。
最后,可以同样的方式var用在语句中吗?if
该过程称为可选绑定。您使用它来检查可选(error在您的情况下)是否包含值,如果是,则将该值分配给绑定常量(e在您的情况下)。
您还可以使用var代替let将值绑定到变量而不是常量:
if var error = error {
// Do something with error
println(error.localizedDescription)
return
}
Run Code Online (Sandbox Code Playgroud)
error请注意,我在上面的代码片段中使用了相同的名称 ( )。在if块内,error不再是可选类型。
| 归档时间: |
|
| 查看次数: |
3807 次 |
| 最近记录: |