Sobes.tech
Junior — Middle

È possibile utilizzare nomi di parametri diversi nella firma durante la sovrascrittura dei metodi?

sobes.tech AI

Risposta dell'AI

In Swift, durante la sovrascrittura di metodi, è possibile usare nomi di parametri diversi nella firma, ma è importante capire che per il compilatore sono importanti i nomi esterni dei parametri (external parameter names), non quelli interni (internal parameter names).

Quando si sovrascrive un metodo, l'interfaccia esterna deve corrispondere affinché il metodo venga sovrascritto correttamente. I nomi interni dei parametri possono differire, poiché sono visibili solo all'interno del corpo del metodo.

Esempio:

class Parent {
    func greet(name personName: String) {
        print("Hello, \(personName)")
    }
}

class Child: Parent {
    override func greet(name friendName: String) { // il parametro esterno "name" corrisponde
        print("Hi, \(friendName)")
    }
}

Qui, il parametro esterno name corrisponde, e i nomi interni (personName e friendName) differiscono, il che è consentito.