主题
可选链(Optional Chaining)
可选链允许通过一连串可选值调用属性、方法或下标,如果其中任何一个为 nil,整个表达式返回 nil。
基本语法
使用 ?
连接可选类型的属性或方法调用:
swift
class Person {
var residence: Residence?
}
class Residence {
var numberOfRooms = 1
}
let john = Person()
let roomCount = john.residence?.numberOfRooms // 返回 Int?,结果为 nil
调用方法
可选链也可用于调用返回值为可选的方法:
swift
class Residence {
func printNumberOfRooms() -> Int {
print("房间数量:\(numberOfRooms)")
return numberOfRooms
}
}
john.residence?.printNumberOfRooms() // 方法不会被调用,返回 nil
链式调用
可选链支持多层链式访问:
swift
let address = john.residence?.address?.street
如果任意一层为 nil,整个表达式结果为 nil。
总结
可选链简化了多层可选值访问的代码,避免了大量的嵌套判断,使代码更简洁安全。