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