Sobes.tech
Junior — Middle

Comment peut-on restreindre les types autorisés de paramètres dans les génériques à l'intérieur d'une méthode?

sobes.tech IA

Réponse de l'IA

En Swift, pour limiter les types autorisés des paramètres dans les génériques à l’intérieur d’une méthode, on utilise la syntaxe de restriction par protocoles ou classes via le mot-clé where ou en indiquant l’héritage.

Exemple de restriction du type de paramètre qui doit respecter le protocole 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
}

Pour une restriction plus complexe, on peut utiliser where:

func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
    if item1 < item2 {
        print("item1 est inférieur à item2")
    }
}

Ainsi, les restrictions permettent au compilateur de vérifier que les types des paramètres respectent les exigences données, ce qui augmente la sécurité et la prévisibilité du code.