Sobes.tech
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.