Sobes.tech
Junior — Middle

Възможно ли е използването на escaping closure с опционални параметри?

sobes.tech AI

Отговор от AI

Да, в Swift може да се използва escaping closure с опционални параметри. Опционалните параметри в closure позволяват да се предават стойности, които могат да бъдат nil. Това е полезно, например, когато резултатът от операция може да липсва или да е неуспешен.

Пример за използване на escaping closure с опционален параметър:

func fetchData(completion: @escaping (String?) -> Void) {
    DispatchQueue.global().async {
        let data: String? = "Резултат от заявката" // или nil при грешка
        completion(data)
    }
}

fetchData { result in
    if let data = result {
        print("Получени данни: \(data)")
    } else {
        print("Липсващи данни")
    }
}

Тук, completion е escaping closure, който приема опционален String. Това е често срещан модел за асинхронни операции.