Junior — Middle
Jaké operace nebo vlastnosti jsou dostupné při definování třídy, které nejsou u struktury?
sobes.tech AI
Odpověď od AI
Ve Swiftu mají třídy několik vlastností, které struktury nemají:
- Dědičnost: třídy mohou dědit od jiných tříd, což umožňuje vytváření hierarchií a přepisování metod.
- Deinitializátory (deinit): třídy mohou mít deinitializátory pro uvolnění zdrojů při odstranění instance.
- Typ odkazu: třídy jsou předávány odkazem, zatímco struktury hodnotou.
- Typy vlastností: třídy mohou mít vlastnosti, které jsou odkazy na objekty, což ovlivňuje správu paměti.
- Možnost použití
weakaunownedodkazů k prevenci cyklů silných odkazů.
Příklad třídy s deinitializátorem:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) je deinitializován")
}
}