Junior — Middle
Aké operácie alebo vlastnosti sú dostupné pri definovaní triedy, ktoré nie sú v štruktúre?
sobes.tech AI
Odpoveď od AI
V Swift-e majú triedy niekoľko vlastností, ktoré štruktúry nemajú:
- Dedičnosť: triedy môžu dediť od iných tried, čo umožňuje vytváranie hierarchií a prepísanie metód.
- Deinitializéry (deinit): triedy môžu mať deinitializéry na uvoľnenie zdrojov pri odstránení inštancie.
- Typ referencie: triedy sa odovzdávajú odkazom, zatiaľ čo štruktúry hodnotami.
- Typy vlastností: triedy môžu mať vlastnosti, ktoré sú odkazy na objekty, čo ovplyvňuje správu pamäti.
- Možnosť použitia
weakaunownedodkazov na prevenciu cyklov silných odkazov.
Príklad triedy s deinitializérom:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) je deinitializovaný")
}
}