Что такое enum в Swift?

«Что такое enum в Swift?» — вопрос из категории Swift Core, который задают на 22% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Enum (перечисление) — это тип, который определяет конечный набор связанных значений, обеспечивая типобезопасность и читаемость кода.

Ключевые особенности:

  • Типобезопасность: компилятор проверяет корректность использования вариантов.
  • Могут содержать методы, вычисляемые свойства и соответствовать протоколам.
  • Поддерживают ассоциированные значения для хранения дополнительных данных.
  • Имеют raw values (необработанные значения) строкового, символьного или целочисленного типа.

Пример базового enum:

enum CompassDirection {
    case north
    case south
    case east
    case west
}
let direction = CompassDirection.north
switch direction {
case .north: print("Север")
// ...
}

Пример с ассоциированными значениями:

enum Barcode {
    case upc(Int, Int, Int, Int)
    case qrCode(String)
}
let product = Barcode.upc(8, 85909, 51226, 3)

switch product {
case .upc(let numberSystem, let manufacturer, let productCode, let check):
    print("UPC: (numberSystem)-(manufacturer)-(productCode)-(check)")
case .qrCode(let code):
    print("QR: (code)")
}

Почему это важно: Enums идеальны для моделирования ограниченных вариантов (состояния, ошибки, типы данных), исключая недопустимые значения на этапе компиляции.