Junior — Middle
Hoe kun je de toegestane parameter types in generics binnen een methode beperken?
sobes.tech AI
Antwoord van AI
In Swift wordt de syntax voor het beperken van toegestane parameter types in generics binnen een methode gebruikt door middel van restricties via protocollen of klassen met het sleutelwoord where of door overerving aan te geven.
Voorbeeld van een beperking van het parameter type dat moet voldoen aan het protocol 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
}
Als een complexere beperking nodig is, kan where worden gebruikt:
func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
if item1 < item2 {
print("item1 is kleiner dan item2")
}
}
Op deze manier zorgen restricties ervoor dat de compiler kan controleren of de parameter types voldoen aan de gestelde eisen, wat de veiligheid en voorspelbaarheid van de code verhoogt.