Sobes.tech
Junior — Middle

Μπορεί να οριστεί μια προεπιλεγμένη υλοποίηση μεθόδου σε μια διεπαφή ή πρωτόκολλο;

sobes.tech AI

Απάντηση από AI

Στο Swift, τα πρωτόκολλα μπορούν να περιέχουν υλοποιήσεις προεπιλεγμένων μεθόδων μέσω επεκτάσεων. Αυτό επιτρέπει τον ορισμό μιας προεπιλεγμένης συμπεριφοράς για τις μεθόδους του πρωτοκόλλου, η οποία μπορεί να υπερισχύσει σε συγκεκριμένους τύπους.

Παράδειγμα:

protocol Greetable {
    func greet()
}

extension Greetable {
    func greet() {
        print("Προεπιλεγμένος χαιρετισμός")
    }
}

struct Person: Greetable {}

let p = Person()
p.greet() // Θα εμφανίσει: Προεπιλεγμένος χαιρετισμός

Έτσι, η προεπιλεγμένη υλοποίηση ορίζεται όχι στο ίδιο το πρωτόκολλο, αλλά στην επέκτασή του.