Junior — Middle
Aké kroky je potrebné vykonať na použitie atribútu @escaping s uzáverom v definícii funkcie?
sobes.tech AI
Odpoveď od AI
V Swift-u sa atributom @escaping označavamo zatvory (closures), ktoré sa ukladajú a volajú po ukončení funkcie, v ktorej boli odovzdané. Pre použitie @escaping je potrebné:
- V deklarácii funkcie pred parametrom zatvory uviesť
@escaping. - To znamená, že zatvory môžu byť volané neskôr, napríklad asynchrónne.
Príklad:
func fetchData(completion: @escaping () -> Void) {
DispatchQueue.global().async {
// Vykonávame asynchrónnu úlohu
completion() // voláme zatvory neskôr
}
}
Bez @escaping kompilátor nepovolí uložiť zatvory na neskoršie volanie po opustení funkcie.