Optional chaining — это механизм Swift, который позволяет тебе безопасно обращаться к свойствам, методам и сабскриптам опциональных значений, добавляя ? после опциональной переменной.
Когда ты используешь optional chaining, Swift вычисляет каждый шаг в цепочке:
nil, возвращается итоговое значениеnil, всё выражение прерывается и возвращает nilРезультат optional chaining всегда обёрнут в опциональ, независимо от исходного типа возврата.
Например, если name это String, обращение к нему через цепочку вернёт String?:
let length = user?.profile?.name?.count
// length имеет тип Int?, а не Int
if let для распаковкиnil-значенийclass User {
var profile: Profile?
}
class Profile {
var username: String = "swift_dev"
}
let user: User? = User()
let name = user?.profile?.username
// name равен nil, потому что profile не установлен
Здесь, даже несмотря на то, что user существует, цепочка возвращает nil, потому что profile не задан — это демонстрирует поведение короткого замыкания.
Optional chaining короткозамыкается и немедленно возвращает nil, если какое-либо значение в цепочке равно nil, вместо попытки доступа к последующим свойствам.
Новый — ещё не проверен сообществом
Вы