Junior — Middle
Kako ograničiti dozvoljene tipove parametara u generičkim unutar metode?
sobes.tech АИ
Одговор од АИ
U Swift-u, za ograničavanje dozvoljenih tipova parametara unutar generičkih metoda koristi se sintaksa ograničenja putem protokola ili klasa preko ključne reči where ili navođenjem naslednosti.
Primer ograničenja tipa parametra koji mora odgovarati 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
}
Ako je potrebna složenija ograničenja, može se koristiti where:
func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
if item1 < item2 {
print("item1 je manje od item2")
}
}
Na ovaj način, ograničenja omogućavaju prevodiocu da proveri da li tipovi parametara ispunjavaju zadate zahteve, čime se povećava sigurnost i predvidivost koda.