Sobes.tech
Junior — Middle

Welche Operationen oder Eigenschaften sind bei der Definition einer Klasse verfügbar, die bei einer Struktur nicht vorhanden sind?

sobes.tech KI

Antwort von AI

In Swift haben Klassen mehrere Eigenschaften, die Strukturen nicht besitzen:

  • Vererbung: Klassen können von anderen Klassen erben, was die Erstellung von Hierarchien und das Überschreiben von Methoden ermöglicht.
  • Deinitialisierer (deinit): Klassen können Deinitialisierer haben, um Ressourcen beim Entfernen einer Instanz freizugeben.
  • Referenztyp: Klassen werden per Referenz übergeben, während Strukturen per Wert übergeben werden.
  • Eigenschaftstypen: Klassen können Eigenschaften haben, die Referenzen auf Objekte sind, was die Speicherverwaltung beeinflusst.
  • Möglichkeit, weak und `unowned`` Referenzen zu verwenden, um starke Referenzkreise zu vermeiden.

Beispiel einer Klasse mit Deinitialisierer:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) wird deinitialisiert")
    }
}