Вопрос проверяет понимание того, какие виды свойств разрешены в enum и как с ними работать.
Enum может содержать вычисляемые свойства и статические свойства. Также данные могут храниться в associated value конкретных case. Хранимые свойства enum иметь не может. Вычисляемые свойства часто используются для получения информации о текущем состоянии enum. Это делает enum удобным и выразительным.
Хотя enum ограничен в хранении данных, он поддерживает несколько видов свойств, которые делают его мощным инструментом.
Вычисляемое свойство — это свойство, которое не хранит значение, а вычисляет его при обращении.
Перед перечислением важно отметить, что enum может содержать только то, что не нарушает его модель состояний.
Вычисляемые свойства
Основаны на текущем case
Часто используют switch self
enum Status {
case active
case inactive
var isActive: Bool {
self == .active
}
}
Статические свойства
Принадлежат типу, а не экземпляру
Используются для констант и фабрик
static let defaultStatus = Status.inactive
Associated value
Хранят данные внутри case
Могут иметь разные типы
case success(data: String)
Хранимые свойства экземпляра
lazy свойства
deinit
Enum может содержать вычисляемые и статические свойства, а также данные внутри case. Это позволяет писать выразительный и безопасный код, не нарушая модель value-типа.