可选链(Optional Chaining)是一种可以在操作可选值时不会引发应用崩溃的一种链式调用语法。通过可选链,我们可以按照链式调用的方式来请求和操作可选值,如果可选值存在就继续调用,否则就返回nil。
Optional基础
在Swift中,Optional表示一个变量的值可以是值或者nil。定义Optional变量需要在类型后加?。
var name: String?
name = "John"
print(name) // Optional("John")
name = nil
print(name) // nil
我们需要通过解析Optional来获取其中的值。
使用可选链
可选链可以让我们跳过繁琐的Optional解析就直接请求或调用Optional后的属性/方法:
class Person {
var residence: Residence?
}
class Residence {
var rooms = [Room]()
...
}
let john = Person()
john.residence?.rooms.count // 可选链调用
如果任何Optional为nil,整个链条就会返回nil。
指定后备值
可以为可选链指定一个后备值,以防整个链条返回nil:
john.residence?.address ?? "No address" // 获取地址时指定默认值
可选链是访问和处理Optional值的好方式,可以编写出简洁和安全的代码。