Ответ
Опциональное замыкание — это замыкание, тип которого объявлен как опциональный (Optional). Оно может иметь значение nil.
Объявление:
var completionHandler: ((Result<Data, Error>) -> Void)?
var onTap: (() -> Void)?
Особенности и использование:
-
Проверка перед вызовом: Замыкание нужно вызывать через опциональную цепочку (
?) или предварительно развернуть.completionHandler?(.success(data)) // Безопасный вызов if let handler = onTap { handler() // Вызов после разворачивания } - Применение: Часто используется для необязательных колбэков в асинхронных операциях, делегатах или конфигурации UI-компонентов.
- Память: Как и любое замыкание, может создавать циклы сильных ссылок. Для захвата
selfиспользуйте[weak self]или[unowned self]в capture list.networkService.fetchData { [weak self] result in self?.handle(result) // Безопасный захват }