Junior — Middle
Kokias aukšto lygio funkcijas naudojote savo projektuose ir galite pateikti jų taikymo pavyzdžių?
sobes.tech AI
Atsakymas iš AI
iOS kūrimo procese dažnai naudojamos aukšto lygio funkcijos kolekcijų apdorojimui ir asinchroniškumo valdymui. Pavyzdžiui, map, filter ir reduce yra aukšto lygio funkcijos, kurios priima kitas funkcijas kaip argumentus.
Pavyzdys, kaip naudoti map skaičių masyvui keisti:
let numbers = [1, 2, 3, 4, 5]
let squaredNumbers = numbers.map { $0 * $0 }
print(squaredNumbers) // [1, 4, 9, 16, 25]
Taip pat, uždarymai (closures) dažnai perduodami funkcijoms, kad apdorotų įvykius ar asinchronines operacijas:
func fetchData(completion: (Result<String, Error>) -> Void) {
// Asinchroninio duomenų įkėlimo imitacija
DispatchQueue.global().async {
let data = "Duomenys"
completion(.success(data))
}
}
fetchData { result in
switch result {
case .success(let data):
print("Gauta: \(data)")
case .failure(let error):
print("Klaida: \(error)")
}
}
Šiuo būdu, aukšto lygio funkcijos leidžia rašyti išraiškingesnį ir glaustesnį kodą.