Sobes.tech
Назад к вопросам
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")
    }
}