Sobes.tech
Junior — Middle

Може ли при презаписване на методи да се използват различни имена на параметри в сигнатурата?

sobes.tech AI

Отговор от 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) се различават — това е допустимо.