Junior — Middle
Кои операции или свойства са достъпни при дефиниране на клас, които не са при структура?
sobes.tech AI
Отговор от AI
В Swift класовете имат няколко характеристики, които структурите нямат:
- Наследяване: класовете могат да наследяват от други класове, което позволява създаване на йерархии и презаписване на методи.
- Деинициализатори (deinit): класовете могат да имат деинициализатори за освобождаване на ресурси при изтриване на екземпляр.
- Тип на референцията: класовете се предават по референция, докато структурите по стойност.
- Типове свойства: класовете могат да имат свойства, които са референции към обекти, което влияе върху управлението на паметта.
- Възможност за използване на
weakиunownedреференции за предотвратяване на цикли от силни референции.
Пример на клас с деинициализатор:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) е деинициализиран")
}
}