تعريف Enum بسيط
جزء من قسم Logic & Flow في رحلة Dart على Coddy — الدرس 59 من 65.
الآن بعد أن فهمت ما هي الـ enums، دعنا نتعلم كيفية إنشائها في Dart. إن الصيغة البرمجية (syntax) مباشرة وتتبع نمطاً بسيطاً.
لتعريف enum، تستخدم الكلمة المفتاحية enum متبوعة باسم الـ enum الخاص بك وقائمة من القيم داخل أقواس متعرجة:
enum Weather {
sunny,
cloudy,
rainy
}يتم فصل كل قيمة في الـ enum بفاصلة، وبحسب العرف، تُكتب قيم الـ enum بأحرف صغيرة. يجب أن يبدأ اسم الـ enum نفسه بحرف كبير، اتباعاً لقواعد التسمية في Dart.
بمجرد تعريف enum، يمكنك استخدامه في جميع أنحاء برنامجك. على سبيل المثال، يمكنك إنشاء enums لأدوار المستخدمين، أو حالات اللعبة، أو مستويات الأولوية:
enum Priority {
low,
medium,
high
}إنشاء enum بهذه البساطة! أنت تقوم أساساً بإنشاء نوع بيانات جديد بمجموعة ثابتة من القيم المحتملة التي ستجعل كودك أكثر موثوقية وأسهل في الفهم.
التحدي
سهلقم بإنشاء برنامج يحدد تعداداً (enum) لأنواع مختلفة من لغات البرمجة ويوضح كيفية استخدامه. مهمتك هي:
- تعريف enum يسمى
ProgrammingLanguageبالقيم التالية:dart، وpython، وjavascript، وjava، وcpp - إنشاء متغير يسمى
currentLanguageمن نوعProgrammingLanguageوتعيين القيمةProgrammingLanguage.dartله - إنشاء متغير آخر يسمى
nextLanguageمن نوعProgrammingLanguageوتعيين القيمةProgrammingLanguage.pythonله - طباعة اللغة الحالية بالتنسيق الدقيق:
Currently learning: ProgrammingLanguage.dart - طباعة اللغة التالية بالتنسيق الدقيق:
Next to learn: ProgrammingLanguage.python - تغيير
currentLanguageإلىProgrammingLanguage.javascript - طباعة اللغة الحالية المحدثة بالتنسيق الدقيق:
Updated current language: ProgrammingLanguage.javascript
يجب أن يوضح برنامجك الصيغة الصحيحة لتعريف enum باستخدام الكلمة الأساسية enum، والتصريح عن متغيرات من نوع enum، والوصول إلى قيم enum باستخدام تدوين النقطة (dot notation). تأكد من اتباع قواعد التسمية في Dart حيث تبدأ أسماء enum بحرف كبير وتُكتب قيم enum بأحرف صغيرة.
ورقة مرجعية
لتحديد enum في Dart، استخدم الكلمة المفتاحية enum متبوعة باسم الـ enum والقيم داخل أقواس متعرجة:
enum Weather {
sunny,
cloudy,
rainy
}يتم فصل قيم الـ Enum بفاصلات وتُكتب بأحرف صغيرة. يجب أن تبدأ أسماء الـ Enum بحرف كبير اتباعاً لاتفاقيات التسمية في Dart.
يمكنك إنشاء متغيرات من نوع enum والوصول إلى القيم باستخدام تدوين النقطة (dot notation):
enum Priority {
low,
medium,
high
}
Priority taskPriority = Priority.high;جرّب بنفسك
// TODO: قم بتعريف enum الخاص بـ ProgrammingLanguage هنا
void main() {
// TODO: اكتب الكود الخاص بك هنا
// 1. قم بإنشاء متغير currentLanguage وقم بتعيين ProgrammingLanguage.dart له
// 2. قم بإنشاء متغير nextLanguage وقم بتعيين ProgrammingLanguage.python له
// 3. اطبع اللغة الحالية بالتنسيق المطلوب
// 4. اطبع اللغة التالية بالتنسيق المطلوب
// 5. قم بتحديث currentLanguage إلى ProgrammingLanguage.javascript
// 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'مراجعة - إشارة المرور