Junior — Middle
Milliseid kõrgema taseme funktsioone olete oma projektides kasutanud ja kas on nende rakendamise näited?
sobes.tech AI
Vastus AI-lt
iOS arendus kasutatakse kõrgema taseme funktsioone sageli kogumite töötlemiseks ja asünkroonsuse haldamiseks. Näiteks on meetodid map, filter ja reduce kõrgema taseme funktsioonid, mis võtavad argumentidena teisi funktsioone.
Näide map kasutamisest arvude massiivi teisendamiseks:
let numbers = [1, 2, 3, 4, 5]
let squaredNumbers = numbers.map { $0 * $0 }
print(squaredNumbers) // [1, 4, 9, 16, 25]
Samuti edastatakse sageli sulgusid (closures) funktsioonidele sündmuste või asünkroonsete operatsioonide töötlemiseks:
func fetchData(completion: (Result<String, Error>) -> Void) {
// Asünkroonse andmete laadimise simulatsioon
DispatchQueue.global().async {
let data = "Andmed"
completion(.success(data))
}
}
fetchData { result in
switch result {
case .success(let data):
print("Saadud: \(data)")
case .failure(let error):
print("Viga: \(error)")
}
}
Sellisel viisil võimaldavad kõrgema taseme funktsioonid kirjutada väljendusrikkamat ja kompaktsemat koodi.