Sobes.tech
Junior — Middle

Lze při přepisování metod používat různé názvy parametrů ve signatuře?

sobes.tech AI

Odpověď od AI

Ve Swiftu při přepisování metod lze používat různé názvy parametrů ve signatuře, ale je důležité pochopit, že pro překladač jsou důležité externí názvy parametrů (external parameter names), nikoli interní (internal parameter names).

Při přepisování metody musí externí rozhraní odpovídat, aby metoda byla správně přepsána. Interní názvy parametrů se mohou lišit, protože jsou viditelné pouze uvnitř těla metody.

Příklad:

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

class Child: Parent {
    override func greet(name friendName: String) { // externí parametr "name" odpovídá
        print("Hi, \(friendName)")
    }
}

Zde odpovídá externí parametr name, a interní názvy (personName a friendName) se liší — to je přípustné.