Оператор объединения nil ?? разворачивает опциональное значение и возвращает его, если оно содержит значение, или переходит к значению по умолчанию, если опциональ равен nil.
let result = optionalValue ?? defaultValue
Если optionalValue не равен nil, он разворачивается и возвращается. Если он равен nil, используется defaultValue.
let optionalName: String? = nil
let name = optionalName ?? "Unknown"
// name равен "Unknown"
Это более чистая и безопасная альтернатива принудительному разворачиванию с !, которое вызывает крах во время выполнения, если значение равно nil.
Оператор можно объединять в цепь, чтобы предусмотреть несколько вариантов fallback:
let value = a ?? b ?? c
Swift вычисляет слева направо, возвращая первое значение, отличное от nil, которое он встречает.
Оператор nil coalescing ?? всегда вычисляет и опциональное значение, и значение по умолчанию, независимо от того, содержит ли опциональ значение.
Новый — ещё не проверен сообществом
Вы