Swift 可選鏈(Optional Chaining)是一種在訪問屬性或方法時(shí)避免崩潰的方法。它允許你在鏈?zhǔn)秸{(diào)用中安全地處理可選值(Optional),從而提高代碼的可讀性和健壯性??蛇x鏈的基本語法是 ?.
。
以下是如何在 Swift 中使用可選鏈的一些示例:
class Person {
var name: String?
var address: Address?
}
class Address {
var city: String?
}
let person = Person()
// 嘗試訪問未綁定的可選值會(huì)導(dǎo)致崩潰
// print(person.address?.city) // 這行代碼會(huì)引發(fā)崩潰
// 使用可選鏈安全地訪問屬性
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 可選鏈?zhǔn)且环N強(qiáng)大的功能,可以幫助你在處理可選值時(shí)避免崩潰,并使代碼更加簡(jiǎn)潔和易讀。通過使用 ?.
語法,你可以安全地訪問可選值,而無需顯式檢查它們是否為 nil
。