استخدام الـ 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 بالخطأ، مما يمنع أخطاء البرمجة الشائعة ويجعل الكود الخاص بك أكثر موثوقية.
التحدي
سهلقم بإنشاء برنامج يدير نظاماً بسيطاً لتتبع المهام باستخدام التعدادات (enums) والمتغيرات. مهمتك هي:
- تعريف enum يسمى
TaskStatusبالقيم التالية:todo، وinProgress، وtesting، وcompleted، وcancelled - إنشاء متغير يسمى
task1Statusمن النوعTaskStatusوتعيين القيمةTaskStatus.todoله - إنشاء متغير يسمى
task2Statusمن النوعTaskStatusوتعيين القيمةTaskStatus.inProgressله - إنشاء متغير يسمى
task3Statusمن النوعTaskStatusوتعيين القيمةTaskStatus.completedله - طباعة الحالة الأولية لجميع المهام بالتنسيق الدقيق:
Task 1 status: TaskStatus.todo - طباعة الحالة الأولية للمهمة 2 بالتنسيق الدقيق:
Task 2 status: TaskStatus.inProgress - طباعة الحالة الأولية للمهمة 3 بالتنسيق الدقيق:
Task 3 status: TaskStatus.completed - تحديث
task1StatusإلىTaskStatus.inProgress - تحديث
task2StatusإلىTaskStatus.testing - طباعة الحالة المحدثة للمهمة 1 بالتنسيق الدقيق:
Updated Task 1 status: TaskStatus.inProgress - طباعة الحالة المحدثة للمهمة 2 بالتنسيق الدقيق:
Updated Task 2 status: TaskStatus.testing - طباعة الحالة النهائية للمهمة 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. اطبع الحالات المحدثة والنهائية
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1التعامل المتقدم مع القوائم
خصائص القائمة: first و lastحالة القائمة: isEmpty و isNotEmptyعكس القائمةالإضافة إلى القائمة: insertالحذف من القائمة: removeWhereالبحث في القائمة: indexOfفرز القائمةخلط القائمةملخص - منظم القوائم4معالجة الـ Map المتقدمة
التكرار عبر الـ Mapالتحقق من المفاتيح والقيمخصائص الـ Map: keys و valuesإضافة مشروطة: putIfAbsentإزالة العناصر من الـ Mapالـ Maps المتداخلةمراجعة - تحديث المخزون2عمليات القوائم الوظيفية
التحويل باستخدام 'map'التصفية باستخدام 'where'استخدام '.toList()'التحقق من الشروط باستخدام 'any'الشروط باستخدام 'every'البحث باستخدام 'firstWhere'مراجعة - تصفية البيانات5مشروع: حاسبة عربة التسوق
إعداد المشروعإضافة العناصر إلى العربة3المجموعات
ما هي المجموعة؟إنشاء مجموعةالإضافة والحذف من المجموعاتالتحقق من وجود عناصر في المجموعةتحويل قائمة إلى مجموعةاتحاد المجموعاتتقاطع المجموعاتالفرق بين المجموعاتمراجعة - قائمة ضيوف فريدة6أساسيات معالجة الأخطاء
ما هي الاستثناءات؟كتلة 'try-catch'التقاط الاستثناءات باستخدام 'on'كتلة 'finally'رمي استثناءملخص - القسمة الآمنة9التعدادات (Enums)
ما هي الـ Enums؟تعريف Enum بسيطاستخدام الـ Enums في المتغيراتالـ Enums في جمل 'switch'مراجعة - إشارة المرور