Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

استخدام الـ Enums في المتغيرات

جزء من قسم Logic & Flow في رحلة Dart على Coddy — الدرس 60 من 65.

الآن بعد أن عرفت كيفية تعريف enums، دعنا نتعلم كيفية استخدامها فعلياً في برامجك. بمجرد إنشاء enum، يمكنك التصريح عن متغيرات من نوع ذلك الـ enum وتعيين قيم محددة لها.

للتصريح عن متغير من نوع enum، عليك تحديد اسم الـ enum متبوعاً باسم المتغير، تماماً كما هو الحال مع أي نوع بيانات آخر:

Weather todayWeather = Weather.sunny;

لاحظ كيف يمكنك الوصول إلى قيم التعداد (enum) باستخدام تدوين النقطة: Weather.sunny. هذا يخبر Dart أنك تريد القيمة sunny من التعداد Weather.

يمكنك تغيير قيمة المتغير إلى أي قيمة enum صالحة أخرى:

todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;

إن جمال استخدام متغيرات enum هو أن Dart تضمن لك إمكانية تعيين قيم enum صالحة فقط. لا يمكنك تعيين "stormy" أو أي قيمة أخرى غير صالحة لمتغير Weather بالخطأ، مما يمنع أخطاء البرمجة الشائعة ويجعل الكود الخاص بك أكثر موثوقية.

challenge icon

التحدي

سهل

قم بإنشاء برنامج يدير نظاماً بسيطاً لتتبع المهام باستخدام التعدادات (enums) والمتغيرات. مهمتك هي:

  1. تعريف enum يسمى TaskStatus بالقيم التالية: todo، و inProgress، و testing، و completed، و cancelled
  2. إنشاء متغير يسمى task1Status من النوع TaskStatus وتعيين القيمة TaskStatus.todo له
  3. إنشاء متغير يسمى task2Status من النوع TaskStatus وتعيين القيمة TaskStatus.inProgress له
  4. إنشاء متغير يسمى task3Status من النوع TaskStatus وتعيين القيمة TaskStatus.completed له
  5. طباعة الحالة الأولية لجميع المهام بالتنسيق الدقيق: Task 1 status: TaskStatus.todo
  6. طباعة الحالة الأولية للمهمة 2 بالتنسيق الدقيق: Task 2 status: TaskStatus.inProgress
  7. طباعة الحالة الأولية للمهمة 3 بالتنسيق الدقيق: Task 3 status: TaskStatus.completed
  8. تحديث task1Status إلى TaskStatus.inProgress
  9. تحديث task2Status إلى TaskStatus.testing
  10. طباعة الحالة المحدثة للمهمة 1 بالتنسيق الدقيق: Updated Task 1 status: TaskStatus.inProgress
  11. طباعة الحالة المحدثة للمهمة 2 بالتنسيق الدقيق: Updated Task 2 status: TaskStatus.testing
  12. طباعة الحالة النهائية للمهمة 3 بالتنسيق الدقيق: Final Task 3 status: TaskStatus.completed

يجب أن يوضح برنامجك التعريف الصحيح للـ enum باستخدام الكلمة المفتاحية enum، والتصريح عن المتغيرات بأنواع enum، والوصول إلى قيم enum باستخدام تدوين النقطة (dot notation)، وتحديث متغيرات enum. تأكد من اتباع قواعد التسمية في Dart حيث يبدأ اسم enum بحرف كبير وتكتب قيم enum بأحرف صغيرة.

ورقة مرجعية

للإعلان عن متغير من نوع enum، حدد اسم الـ enum متبوعاً باسم المتغير:

Weather todayWeather = Weather.sunny;

الوصول إلى قيم الـ enum باستخدام تدوين النقطة بالتنسيق EnumName.value:

todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;

تضمن Dart أنه يمكنك فقط تعيين قيم enum صالحة لمتغيرات الـ enum، مما يمنع التعيينات غير الصالحة ويجعل الكود أكثر موثوقية.

جرّب بنفسك

import 'dart:io';

// TODO: قم بتعريف التعداد TaskStatus هنا

void main() {
  // TODO: اكتب الكود الخاص بك هنا
  // 1. قم بإنشاء متغير task1Status وتعيين TaskStatus.todo له
  // 2. قم بإنشاء متغير task2Status وتعيين TaskStatus.inProgress له  
  // 3. قم بإنشاء متغير task3Status وتعيين TaskStatus.completed له
  // 4. اطبع الحالة الأولية لجميع المهام
  // 5. قم بتحديث حالات المهام حسب المطلوب
  // 6. اطبع الحالات المحدثة والنهائية
  
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow