nil - полное отсутствие какого-либо значения, аналог Null, не пустая строка, не пустое значение… Что то типа вакуума )
var name: Sting? = nill
1. Жесткое (прямое) извлечение из опционала - unwraping - "!":
var name: Sting? = «Dima»
print(«\(name!)»)
Так можно делать если на 100% уверен что внутри опционала есть значение.
2. Мягкое извлечение из-под опционала с помощью ответвлений
3. Оператор объединения по nil / Оператор оционального связывания
var name: String? = nil
var defaultName = "Gost'"
let nameForGreating = name ?? defaultName
print("\(nameForGreating)")
Проверка идет слева направо. сначала проверяется опционал, если там есть значение -х берем его, иначе значение из второй переменной «defaultName»
Пример работы с тернальным оператором:
var name: String = «Dima»
var age:Int? = 37
age != nil ? (print(«Имя \(name),возраст \(age!)»)) : (print(«Имя \(name)»))