Junior — Middle
Ποιες λειτουργίες ή ιδιότητες είναι διαθέσιμες κατά τον ορισμό μιας κλάσης που δεν υπάρχουν σε μια δομή;
sobes.tech AI
Απάντηση από AI
Στη Swift, οι κλάσεις έχουν διάφορα χαρακτηριστικά που δεν διαθέτουν οι δομές:
- Κληρονομικότητα: οι κλάσεις μπορούν να κληρονομήσουν από άλλες κλάσεις, επιτρέποντας τη δημιουργία ιεραρχιών και την υπερισχύση μεθόδων.
- Deinitializers (deinit): οι κλάσεις μπορούν να έχουν deinitializers για την απελευθέρωση πόρων όταν διαγράφεται ένα στιγμιότυπο.
- Τύπος αναφοράς: οι κλάσεις περνούν με αναφορά, ενώ οι δομές με τιμή.
- Τύποι ιδιοτήτων: οι κλάσεις μπορούν να έχουν ιδιότητες που είναι αναφορές σε αντικείμενα, επηρεάζοντας τη διαχείριση μνήμης.
- Δυνατότητα χρήσης
weakκαιunownedαναφορών για την αποτροπή κύκλων ισχυρών αναφορών.
Παράδειγμα κλάσης με deinitializer:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) αποδεσμεύεται")
}
}