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,
weakund `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")
}
}