Junior — Middle
Jak można ograniczyć dozwolone typy parametrów w generykach wewnątrz metody?
sobes.tech AI
Odpowiedź od AI
W Swift, aby ograniczyć dozwolone typy parametrów w generykach wewnątrz metody, używa się składni ograniczeń przez protokoły lub klasy za pomocą słowa kluczowego where lub wskazania dziedziczenia.
Przykład ograniczenia typu parametru, który musi spełniać protokół 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
}
Jeśli potrzebne jest bardziej skomplikowane ograniczenie, można użyć where:
func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
if item1 < item2 {
print("item1 jest mniejsze od item2")
}
}
W ten sposób ograniczenia pozwalają kompilatorowi sprawdzać, czy typy parametrów spełniają określone wymagania, co zwiększa bezpieczeństwo i przewidywalność kodu.