Swift 可选链(Optional Chaining)是一种在访问属性或方法时避免崩溃的方法。它允许你在链式调用中安全地处理可选值(Optional),从而提高代码的可读性和健壮性。可选链的基本语法是 ?.
。
以下是如何在 Swift 中使用可选链的一些示例:
- 避免访问未绑定的可选值导致的崩溃:
class Person { var name: String? var address: Address? } class Address { var city: String? } let person = Person() // 尝试访问未绑定的可选值会导致崩溃 // print(person.address?.city) // 这行代码会引发崩溃 // 使用可选链安全地访问属性 if let address = person.address, let city = address.city { print("City: \(city)") } else { print("Address or city is nil") }
- 在闭包中使用可选链:
class Person { var name: String? var age: Int? } let person = Person(name: "John", age: nil) // 使用可选链在闭包中安全地访问属性 person.age?.forEach { age in print("Age: \(age)") }
- 在集合中使用可选链:
class Person { var name: String? var age: Int? } let people: [Person] = [ Person(name: "John", age: 30), Person(name: "Jane", age: nil), Person(name: "Mike", age: 25) ] // 使用可选链过滤非空年龄的人 let nonNilAges = people.compactMap { person in person.age } print("Non-nil ages: \(nonNilAges)") // 输出: Non-nil ages: [30, 25]
总之,Swift 可选链是一种强大的功能,可以帮助你在处理可选值时避免崩溃,并使代码更加简洁和易读。通过使用 ?.
语法,你可以安全地访问可选值,而无需显式检查它们是否为 nil
。