Swift 中的可选链详解

可选链(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值的好方式,可以编写出简洁和安全的代码。