Sobes.tech
Junior — Middle

Je možné pri prepisovaní metód použiť rôzne názvy parametrov v signatúre?

sobes.tech AI

Odpoveď od AI

Во Swift-у, при презапису на методи, можете да користите различни имена на параметри во сигнатурата, но е важно да разберете дека за компајлерот важни се надворешните имена на параметрите (external parameter names), а не внатрешните (internal parameter names).

При презаписување на метод, надворешниот интерфејс мора да се совпадне за методот правилно да се презапише. Внатрешните имена на параметрите можат да се разликуваат, бидејќи се видливи само внатре во телото на методот.

Пример:

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

class Child: Parent {
    override func greet(name friendName: String) { // надворешниот параметар "name" се совпадне
        print("Hi, \(friendName)")
    }
}

Тука, надворешниот параметар name се совпадне, а внатрешните имиња (personName и friendName) се разликуваат — тоа е дозволено.