Sobes.tech
Junior — Middle

Ako obmedziť dovolené typy parametrov v generikách v rámci metódy?

sobes.tech AI

Odpoveď od AI

V Swift-e sa syntaxou obmedzenia povolených typov parametrov v generikách v rámci metódy sa používa syntax obmedzenia pomocou protokolov alebo tried cez kľúčové slovo where alebo určením dedičstva.

Príklad obmedzenia typu parametra, ktorý musí zodpovedať protokolu Equatable:

func findIndex<T: Equatable>(of valueToFind: T, in array: [T]) -> Int? {
    for (index, value) in array.enumerated() {
        if value == valueToFind {
            return index
        }
    }
    return nil
}

Ak je potrebné zložitejšie obmedzenie, možno použiť where:

func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
    if item1 < item2 {
        print("item1 je menšie ako item2")
    }
}

Týmto spôsobom obmedzenia umožňujú prekladaču overiť, či typy parametrov spĺňajú stanovené požiadavky, čím sa zvyšuje bezpečnosť a predvídateľnosť kódu.