Sobes.tech
Junior — Middle

Είναι δυνατή η υλοποίηση μεταβλητών μέσα στα πρωτόκολλα;

sobes.tech AI

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

Στο Swift, τα πρωτόκολλα μπορούν να περιέχουν δηλώσεις ιδιοτήτων, αλλά δεν μπορούν να αποθηκεύουν μεταβλητές με κατάσταση. Δηλαδή, μέσα στο πρωτόκολλο μπορεί να οριστούν ιδιότητες με get και set, που πρέπει να υλοποιηθούν σε κλάσεις ή δομές, αλλά το ίδιο το πρωτόκολλο δεν αποθηκεύει δεδομένα. Για παράδειγμα:

protocol MyProtocol {
    var name: String { get set }
}

struct User: MyProtocol {
    var name: String
}

Έτσι, η υλοποίηση των μεταβλητών (αποθήκευση κατάστασης) γίνεται στους τύπους που πληρούν το πρωτόκολλο, και όχι στο ίδιο το πρωτόκολλο.