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.