Optional (T?) — enum с кейсами .none и .some(T): отсутствие значения явно в типе, а не через sentinel/null без проверки.
Разбор
String? может быть nil; String — нет.
- Развёртка:
if let, guard let, ??, ?., ! (force).
- Цель — меньше крашей от неожиданного
nil на устройстве.
Optional сам по себе value type.
Пример
var title: String? = nil
let text = title ?? "Untitled"
Итог
Optional — контракт «значение может отсутствовать» на уровне компилятора.