Sobes.tech
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) αποδεσμεύεται")
    }
}