Junior — Middle
Wie kann man die zulässigen Parametertypen in Generics innerhalb einer Methode einschränken?
sobes.tech KI
Antwort von AI
In Swift wird die Syntax zur Einschränkung zulässiger Parametertypen bei Generics innerhalb einer Methode durch die Verwendung von Protokollen oder Klassen mit dem Schlüsselwort where oder durch Vererbung genutzt.
Beispiel für eine Einschränkung des Parametertyps, der dem Protokoll Equatable entsprechen muss:
func findIndex<T: Equatable>(of valueToFind: T, in array: [T]) -> Int? {
for (index, value) in array.enumerated() {
if value == valueToFind {
return index
}
}
return nil
}
Wenn eine komplexere Einschränkung erforderlich ist, kann where verwendet werden:
func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
if item1 < item2 {
print("item1 ist kleiner als item2")
}
}
Auf diese Weise ermöglichen Einschränkungen dem Compiler, zu überprüfen, ob die Parametertypen den festgelegten Anforderungen entsprechen, was die Sicherheit und Vorhersehbarkeit des Codes erhöht.