0Pricing
Swift Academy · Урок

Исходные значения и CaseIterable

Перечисления на основе String, Int и других типов RawRepresentable, а также allCases.

«Исходные значения и CaseIterable» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Добро пожаловать

Перечисления Swift могут иметь *исходные значения* — литеральные значения, хранящиеся вместе с каждым вариантом. Соответствие `CaseIterable` автоматически предоставляет коллекцию всех вариантов.

Перечисления с исходными значениями

```swift enum Direction: String { case north = "N" case south = "S" case east = "E" case west = "W" } print(Direction.north.rawValue) // "N" ```

Автоматически увеличивающиеся целочисленные исходные значения

```swift enum Planet: Int { case mercury = 1 case venus // 2 (auto) case earth // 3 case mars // 4 } print(Planet.earth.rawValue) // 3 ```

Строковые исходные значения получают имена автоматически

```swift enum Color: String { case red, green, blue } print(Color.blue.rawValue) // "blue" — auto-named ``` Для строковых исходных значений, если присваивание опущено, исходное значение совпадает с именем варианта.

Отказоустойчивый инициализатор `init?(rawValue:)`

```swift if let dir = Direction(rawValue: "N") { print(dir) // Direction.north } let invalid = Direction(rawValue: "X") // nil ``` Автоматически сгенерированный инициализатор, допускающий сбой, возвращает nil для нераспознанных исходных значений.

CaseIterable

```swift enum Season: CaseIterable { case spring, summer, autumn, winter } print(Season.allCases) // [.spring,.summer,.autumn,.winter] print(Season.allCases.count) // 4 ```

Перебор всех вариантов

```swift for season in Season.allCases { print(season) } let picker = Season.allCases.map { "\($0)".capitalized } ```

CaseIterable с исходными значениями

```swift enum Suit: String, CaseIterable { case hearts="♥", diamonds="♦", clubs="♣", spades="♠" } print(Suit.allCases.map { $0.rawValue }) // ["♥","♦","♣","♠"] ```

Исходные значения для Codable

Перечисления со строковыми исходными значениями без проблем работают с `Codable`: ```swift enum Status: String, Codable { case active, inactive, pending } struct User: Codable { var status: Status } // JSON "active" decodes to .active automatically ```

Исходные значения для битовых масок флагов

```swift struct Permission: OptionSet { let rawValue: Int static let read = Permission(rawValue: 1 << 0) static let write = Permission(rawValue: 1 << 1) static let execute = Permission(rawValue: 1 << 2) } var p: Permission = [.read, .write] print(p.contains(.read)) // true ```

Быстрая проверка

Какой протокол делает все варианты перечисления доступными через `allCases`?

Повторение

Основные выводы: • Исходные значения: `enum E: String { case a = "x" }` • Целочисленные исходные значения увеличиваются автоматически; строковые исходные значения по умолчанию совпадают с именем варианта • `init?(rawValue:)` создаётся автоматически и допускает сбой • `CaseIterable` предоставляет статическое свойство `.allCases` • Объединяйте `String, CaseIterable` для меню и списков выбора Далее: связанные значения.

Часто задаваемые вопросы

Урок «Исходные значения и CaseIterable» бесплатный?

Да — полный текст урока «Исходные значения и CaseIterable» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «Исходные значения и CaseIterable»?

Перечисления на основе String, Int и других типов RawRepresentable, а также allCases. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Исходные значения и CaseIterable»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Исходные значения и CaseIterable
  2. Связанные значения для сложных данных
  3. Косвенные перечисления и рекурсивные структуры
  4. Моделирование конечных автоматов с помощью перечислений
← Назад к Swift Academy