Junior — Middle
Μπορεί να οριστεί μια προεπιλεγμένη υλοποίηση μεθόδου σε μια διεπαφή ή πρωτόκολλο;
sobes.tech AI
Απάντηση από AI
Στο Swift, τα πρωτόκολλα μπορούν να περιέχουν υλοποιήσεις προεπιλεγμένων μεθόδων μέσω επεκτάσεων. Αυτό επιτρέπει τον ορισμό μιας προεπιλεγμένης συμπεριφοράς για τις μεθόδους του πρωτοκόλλου, η οποία μπορεί να υπερισχύσει σε συγκεκριμένους τύπους.
Παράδειγμα:
protocol Greetable {
func greet()
}
extension Greetable {
func greet() {
print("Προεπιλεγμένος χαιρετισμός")
}
}
struct Person: Greetable {}
let p = Person()
p.greet() // Θα εμφανίσει: Προεπιλεγμένος χαιρετισμός
Έτσι, η προεπιλεγμένη υλοποίηση ορίζεται όχι στο ίδιο το πρωτόκολλο, αλλά στην επέκτασή του.