Junior — Middle
Ar galima perrašant metodus naudoti skirtingus parametrų pavadinimus signatūroje?
sobes.tech AI
Atsakymas iš AI
Swift kalbant, metodų perrašymo metu galima naudoti skirtingus parametrų pavadinimus signatūroje, tačiau svarbu suprasti, kad kompilatoriui svarbūs yra išoriniai parametrų pavadinimai (external parameter names), o ne vidiniai (internal parameter names).
Perrašant metodą, išorinis interfeisas turi būti sutampantis, kad metodas būtų teisingai perrašytas. Vidiniai parametrų pavadinimai gali skirtis, nes jie matomi tik metodo kūne.
Pavyzdys:
class Parent {
func greet(name personName: String) {
print("Hello, \(personName)")
}
}
class Child: Parent {
override func greet(name friendName: String) { // išorinis parametras "name" sutampa
print("Hi, \(friendName)")
}
}
Čia išorinis parametras name sutampa, o vidiniai pavadinimai (personName ir friendName) skiriasi — tai leidžiama.