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) განსხვავებულია — ეს დაშვებულია.