Junior — Middle
Come si possono limitare i tipi di parametri consentiti nei generici all'interno di un metodo?
sobes.tech AI
Risposta dell'AI
In Swift, per limitare i tipi consentiti dei parametri nei generici all’interno di un metodo, si utilizza la sintassi di restrizione tramite protocolli o classi tramite la parola chiave where o indicando l’ereditarietà.
Esempio di restrizione del tipo di parametro che deve conformarsi al protocollo 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
}
Se è necessaria una restrizione più complessa, si può usare where:
func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
if item1 < item2 {
print("item1 è minore di item2")
}
}
In questo modo, le restrizioni permettono al compilatore di verificare che i tipi dei parametri rispettino i requisiti stabiliti, aumentando la sicurezza e la prevedibilità del codice.