Patterns وGuards في switch
طابق الأشكال وأضف شروط when
Patterns وGuards في switch درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
تلتقي switch مع الأنماط
تتيح Dart الحديثة لـswitch مطابقة الأنماط، وليس الثوابت فقط. ويمكن لكل حالة اختبار بنية قيمة وتفكيكها في الوقت نفسه. 🔀
مطابقة بنية Record
يمكن أن تكون الحالة record pattern. إذا طابقت القيمة هذه البنية، تُنفَّذ الحالة وتُربط حقولها بمتغيرات.
switch (point) {
case (0, 0): print('origin');
}الربط أثناء المطابقة
يمكن للأنماط capture القيم أثناء المطابقة. سمِّ المواضع، وستحصل على الحقول جاهزةً للاستخدام داخل جسم الحالة.
switch (p) {
case (var x, var y): print(x + y);
}حالة Wildcard
تطابق حالة الشرطة السفلية anything. وهي تعمل مثل default، إذ تلتقط القيم التي لم تتعامل معها أي حالة سابقة.
switch (n) {
case 1: print('one');
case _: print('other');
}ما هو Guard؟
يضيف guard شرطًا إلى الحالة باستخدام الكلمة المفتاحية when. ولا تُنفَّذ الحالة إلا إذا طابق النمط وكانت نتيجة الاختبار صحيحة.
case (var x, var y) when x == y:
print('diagonal');تُحسّن Guards المطابقة
استخدم guard عندما لا تكفي البنية وحدها. فهو يتيح لك تقسيم نمط واحد إلى نتائج finer استنادًا إلى القيم.
الترتيب يحدد الفائز
تُفحَص الحالات من الأعلى إلى الأسفل. تفوز الحالة first المطابقة، لذا ضع الأنماط الأكثر تحديدًا قبل الأنماط الأوسع.
استخدام switch كتعبير
يعيد switch expression قيمة. وتستخدم الحالات السهم، ويُقيَّم switch بأكمله إلى نتيجة واحدة.
var label = switch (n) {
1 => 'one',
_ => 'many',
};لا حاجة إلى Break
لا تنتقل حالات الأنماط تلقائيًا إلى الحالة التالية، لذلك لا تكتب break مطلقًا. كل حالة مستقلة ومرتبة.
أنماط Logical-Or
صِل الأنماط باستخدام || لمطابقة عدة بنيات في حالة واحدة. عالج القيم المرتبطة معًا من دون تكرار الأجسام.
case 1 || 2 || 3:
print('small');شامل وآمن
بالنسبة إلى الأنواع sealed، يتحقق المترجم من أن switch لديك exhaustive. إذا أغفلت حالة، تحذرك Dart قبل حدوث ذلك أثناء التشغيل.
تحقق سريع
ما الكلمة المفتاحية التي تضيف شرطًا إضافيًا إلى نمط حالة switch؟
مراجعة: الأنماط وGuards
لقد نجحت! 🎯 يستطيع switch مطابقة patterns، والتقاط الحقول، وتحسين المطابقات باستخدام Guards من نوع when، وإرجاع القيم كتعبير.
الأسئلة الشائعة
هل درس «Patterns وGuards في switch» مجاني؟
نعم — نص درس «Patterns وGuards في switch» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «Patterns وGuards في switch»؟
طابق الأشكال وأضف شروط when تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «Patterns وGuards في switch»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- Records: Tuples خفيفة
- حقول Records الموضعية والمسمّاة
- التفكيك باستخدام Patterns
- Patterns وGuards في switch