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