Junior — Middle
Da li je moguće koristiti različite nazive parametara u potpisu prilikom prepisivanja metoda?
sobes.tech АИ
Одговор од АИ
U Swift-u, prilikom prepisivanja metoda, možete koristiti različite nazive parametara u potpisu, ali je važno razumeti da za kompajler, važna su spoljašnja imena parametara (external parameter names), a ne unutrašnja (internal parameter names).
Prilikom prepisivanja metode, spoljašnji interfejs mora odgovarati da bi metoda bila ispravno prepisana. Unutrašnja imena parametara mogu se razlikovati, jer su vidljiva samo unutar tela metode.
Primer:
class Parent {
func greet(name personName: String) {
print("Hello, \(personName)")
}
}
class Child: Parent {
override func greet(name friendName: String) { // spoljašnji parametar "name" odgovara
print("Hi, \(friendName)")
}
}
Ovde, spoljašnji parametar name odgovara, a unutrašnja imena (personName i friendName) se razlikuju — to je dozvoljeno.