Sobes.tech
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.