Junior — Middle
Milyen magasabb rendű funkciókat használtál a projektjeidben, és tudsz példákat adni azok alkalmazására?
sobes.tech MI
Válasz az MI-től
Az iOS fejlesztésben a magasabb rendű funkciókat gyakran használják kollekciók feldolgozására és az aszinkronitás kezelésére. Például a map, filter és reduce metódusok olyan magasabb rendű funkciók, amelyek más funkciókat fogadnak el argumentumként.
Példa a map használatára egy számokból álló tömb átalakítására:
let numbers = [1, 2, 3, 4, 5]
let squaredNumbers = numbers.map { $0 * $0 }
print(squaredNumbers) // [1, 4, 9, 16, 25]
Szintén, a lezárások (closures) gyakran átadódnak függvényeknek események vagy aszinkron műveletek kezelésére:
func fetchData(completion: (Result<String, Error>) -> Void) {
// Aszinkron adatbetöltés szimulálása
DispatchQueue.global().async {
let data = "Adatok"
completion(.success(data))
}
}
fetchData { result in
switch result {
case .success(let data):
print("Kapott: \(data)")
case .failure(let error):
print("Hiba: \(error)")
}
}
Így a magasabb rendű funkciók lehetővé teszik kifejezőbb és kompaktabb kód írását.