0Pricing
Kotlin Multiplatform Academy · Урок

Перечисления и запечатанные классы для состояния

Безопасно моделируйте фиксированные варианты и разновидности результатов

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

Части этого урока еще не переведены и отображаются на английском.

Model Fixed Choices

Some values have a known, limited set of options. Kotlin gives you enums and sealed classes to model them safely in shared code.

Meet the enum class

An enum class lists every allowed value by name. Nothing outside that list can ever sneak in.

enum class Status { ACTIVE, PAUSED, DONE }

Use an enum Value

Refer to an option by its name. Because the set is closed, your state is always one of the listed cases.

val current = Status.ACTIVE

Enums Can Carry Data

Give an enum constructor properties so each case can hold extra fixed info, like a label or numeric code.

enum class Plan(val price: Int) { FREE(0), PRO(9) }

When Cases Need Different Data

Enums share one shape. When variants need different fields, reach for a sealed class instead.

Meet the sealed class

A sealed class defines a closed family of subtypes. Each subtype can carry its own distinct data.

sealed class Result
data class Ok(val value: String) : Result()
data class Err(val message: String) : Result()

Why Sealed Is Powerful

Because the compiler knows every subtype, a sealed class models success, loading and error states with type-safe payloads.

val state: Result = Ok("loaded")

Match with when

Handle each case using when. The compiler checks you covered every variant of the sealed type.

when (state) {
  is Ok -> println(state.value)
  is Err -> println(state.message)
}

Exhaustive when, No else

When you handle all sealed cases, you can drop the else branch. Add a new subtype later and the compiler reminds you.

Shared, So Both Apps Agree

Defined in commonMain, these state types drive identical logic on Android and iOS with zero drift.

Pick the Right Tool

Use an enum for simple fixed options, and a sealed class when each case carries different data.

Quick Check

Which type should model these states?

Recap

Use shared enums for fixed options and sealed classes for variants with their own data, then match them safely with when.

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

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

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

Чему я научусь в уроке «Перечисления и запечатанные классы для состояния»?

Безопасно моделируйте фиксированные варианты и разновидности результатов Ты практикуешь Kotlin Multiplatform Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

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

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

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

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

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

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

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

  1. Классы данных для предметной области
  2. Перечисления и запечатанные классы для состояния
  3. Безопасность null в общих моделях
  4. Помощники проверки для ваших моделей
← Назад к Kotlin Multiplatform Academy