قيم Enum وترتيباتها
كرّروا القيم وفهرسوها
قيم Enum وترتيباتها درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
إدراج جميع الثوابت
تعيد الدالة المُنشأة values() مصفوفةً تضم كل ثابت بترتيب تعريفه.
enum class Suit { HEARTS, CLUBS }
fun main() {
for (s in Suit.values()) println(s)
}entries بدلًا من values()
تفضّل Kotlin الحديثة استخدام entries، إذ تعيد قائمة غير قابلة للتغيير وتتجنب إنشاء مصفوفة جديدة في كل استدعاء.
enum class Suit { HEARTS, CLUBS }
fun main() {
for (s in Suit.entries) println(s)
}خاصية ordinal
يمتلك كل ثابت قيمة ordinal، وهي موضعه الذي يبدأ من الصفر في ترتيب التعريف.
enum class Size { S, M, L }
fun main() {
println(Size.S.ordinal)
println(Size.L.ordinal)
}عدّ الثوابت
استخدم entries.size لعدّ عدد الثوابت الموجودة.
enum class Day { MON, TUE, WED }
fun main() {
println(Day.entries.size)
}التكرار باستخدام الفهرس
ادمج القيم الترتيبية أو الفهارس لترقيم كل ثابت.
enum class Color { RED, GREEN, BLUE }
fun main() {
for (c in Color.entries) {
println("${c.ordinal}: $c")
}
}مراجعة valueOf وname
استخدم valueOf()، أي من السلسلة النصية إلى الثابت، مع name، أي من الثابت إلى السلسلة النصية، للتحويل ذهابًا وإيابًا.
enum class Status { ON, OFF }
fun main() {
val s = Status.valueOf("ON")
println(s.name)
}تطبيق دالة على الثوابت
بما أن entries قائمة، يمكنك استخدام دوال المجموعات مثل map.
enum class Coin(val cents: Int) { PENNY(1), DIME(10) }
fun main() {
val names = Coin.entries.map { it.name }
println(names)
}البحث باستخدام خاصية
ابحث في الثوابت باستخدام first أو find استنادًا إلى خاصية.
enum class Coin(val cents: Int) { PENNY(1), DIME(10) }
fun main() {
val c = Coin.entries.first { it.cents == 10 }
println(c)
}القيم الترتيبية هشة
تجنب تخزين قيم ordinal لمدة طويلة. فتغيير ترتيب الثوابت يغيّر القيم الترتيبية، مما يؤدي إلى إتلاف البيانات المحفوظة. خزّن name بدلًا من ذلك.
enum class Level { LOW, HIGH }
fun main() {
println(Level.HIGH.name)
}الثابت التالي باستخدام ordinal
يمكنك التنقل بين الثوابت باستخدام القيم الترتيبية وقائمة entries.
enum class Gear { FIRST, SECOND, THIRD }
fun next(g: Gear): Gear {
val all = Gear.entries
return all[(g.ordinal + 1) % all.size]
}
fun main() {
println(next(Gear.FIRST))
}جمع العناصر معًا
لخّص تعدادًا بالتكرار عليه وقراءة كل من name وordinal.
enum class Planet { MERCURY, VENUS, EARTH }
fun main() {
Planet.entries.forEach {
println("${it.ordinal} -> ${it.name}")
}
}تحقق سريع
اختبر فهمك لقيم التعداد والقيم الترتيبية.
مراجعة
تعلمت كيفية تعداد الثوابت وفهرستها:
- تسرد
entriesالمفضلة وvalues()جميع الثوابت. - يمثل
ordinalموضع الثابت الذي يبدأ من الصفر في ترتيب تعريفه. - إن
entriesقائمة، ولذلك تعمل معها دوال المجموعات. - فضّل تخزين
nameعلىordinalلضمان استمرار البيانات.
enum class Size { S, M, L }
fun main() {
println(Size.entries.size)
println(Size.M.ordinal)
}الأسئلة الشائعة
هل درس «قيم Enum وترتيباتها» مجاني؟
نعم — نص درس «قيم Enum وترتيباتها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
ماذا ستتعلم في «قيم Enum وترتيباتها»؟
كرّروا القيم وفهرسوها تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟
لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «قيم Enum وترتيباتها»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟
نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف Enums
- خصائص Enum وطرائقها
- Enums مع when
- قيم Enum وترتيباتها