Junior — Middle
Jak lze omezit povolené typy parametrů v generikách uvnitř metody?
sobes.tech AI
Odpověď od AI
Ve Swiftu se syntaxe pro omezení povolených typů parametrů v generikách uvnitř metody používá omezení pomocí protokolů nebo tříd přes klíčové slovo where nebo určení dědičnosti.
Příklad omezení typu parametru, který musí splňovat protokol 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
}
Pokud je potřeba složitější omezení, lze použít where:
func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
if item1 < item2 {
print("item1 je menší než item2")
}
}
Tímto způsobem umožňují omezení, aby překladač ověřil, že typy parametrů splňují stanovené požadavky, což zvyšuje bezpečnost a předvídatelnost kódu.