Ответ
Классы (class) в Swift используются, когда требуется ссылочная семантика и управление идентичностью объекта.
Основные сценарии применения:
- Наследование: Когда нужно создать иерархию типов, где подклассы наследуют и переопределяют поведение родителя.
class Vehicle { var currentSpeed = 0.0 func makeSound() { print("...") } } class Car: Vehicle { var gear = 1 override func makeSound() { print("Vroom!") } } - Разделяемое состояние: Когда несколько частей кода должны ссылаться и модифицировать один и тот же экземпляр.
- Управление жизненным циклом: При необходимости выполнить cleanup в деинициализаторе (
deinit). - Совместимость с Objective-C: Если класс должен быть доступен в Objective-C-коде (наследуется от
NSObject).
Ключевое отличие от структур: Экземпляры класса передаются по ссылке. При присваивании или передаче в функцию создается новая ссылка на тот же объект в памяти.