0Pricing
Kotlin Multiplatform Academy · درس

Enums وSealed Classes للحالة

نمذجة الخيارات الثابتة وتنوعات النتائج بأمان

Enums وSealed Classes للحالة درس مجاني في 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.

الأسئلة الشائعة

هل درس «Enums وSealed Classes للحالة» مجاني؟

نعم — نص درس «Enums وSealed Classes للحالة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Multiplatform Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Multiplatform Academy 4 دروس في المجموع.

ماذا ستتعلم في «Enums وSealed Classes للحالة»؟

نمذجة الخيارات الثابتة وتنوعات النتائج بأمان تتمرن على Kotlin Multiplatform Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Multiplatform Academy؟

لا تُشترط خبرة سابقة. Kotlin Multiplatform Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «Enums وSealed Classes للحالة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Multiplatform Academy هذا؟

نعم. كل درس في Kotlin Multiplatform Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. فئات البيانات لنطاق تطبيقكم
  2. Enums وSealed Classes للحالة
  3. أمان القيم الفارغة في النماذج المشتركة
  4. مساعدات التحقق في نماذجكم
← العودة إلى Kotlin Multiplatform Academy