التفكيك باستخدام Patterns
فكّك Records والقوائم وMaps
التفكيك باستخدام Patterns درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
ما هو Destructuring؟
يعني Destructuring استخراج القيم من بنية ووضعها في متغيرات دفعةً واحدة. يشبه ذلك فتح صندوق ووضع بطاقة باسم على كل عنصر في الوقت نفسه. 🎁
الأنماط تصف البنية
النمط pattern هو قالب يطابق بنية قيمة. إذا وافقت القيمة هذا القالب، يربط Dart أجزاءها بالأسماء التي كتبتها.
تفكيك Record
ضع نمط record على يسار =، وسيملأ Dart كل متغير من الموضع المطابق. قيمتان واسمان، فورًا.
var (a, b) = (1, 2);
print(a);أنماط Record المسماة
بالنسبة إلى الحقول المسماة، طابقها حسب name داخل النمط. يخبر اسم الحقل على اليسار Dart بالقيمة التي يجب استخراجها.
var (x: a, y: b) = (x: 3, y: 7);
print(b);تبديل سهل
يظهر نفع Destructuring بوضوح عند swapping متغيرين. أنشئ record، ثم فككه، فتتبادل القيم موضعيهما في سطر واحد واضح.
(a, b) = (b, a);
print(a);تفكيك List
يستخدم list pattern الأقواس المربعة. ويربط كل موضع عنصرًا واحدًا، لذلك تتطابق المواضع مع متغيراتك.
var [first, second] = [10, 20];
print(first);عنصر الباقي
داخل نمط list، يلتقط ... أي عناصر متبقية. استخرج العنصر الأول ودَع الباقي يجمع الذيل.
var [head, ...rest] = [1, 2, 3, 4];
print(rest);تفكيك Map
يقرأ map pattern القيم باستخدام المفتاح. اذكر المفاتيح التي تهمك واربط كلًّا منها بمتغير.
var {'id': id} = {'id': 42, 'name': 'A'};
print(id);نمط Wildcard
استخدم الشرطة السفلية كـwildcard عندما لا يهمك أحد المواضع. فهي تطابق أي شيء ولا تربط أي قيمة.
var (_, important) = ('skip', 99);
print(important);Destructuring في for-in
يمكنك إجراء Destructuring مباشرةً داخل حلقة for-in. فكك كل record أثناء التكرار، من دون الحاجة إلى فهرسة يدوية.
for (var (k, v) in [(1, 'a')]) {
print(v);
}تعليمة أوضح وأقل تداخلًا
تستبدل الأنماط سلسلة من عمليات الوصول إلى .field بسطر واحد سهل القراءة. وتصبح نيتك واضحةً من النظرة الأولى.
تحقق سريع
ماذا تفعل الشرطة السفلية في النمط var (_, x) = ('a', 1)؟
مراجعة: Destructuring
أحسنت! 🙌 تتيح لك الأنماط إجراء destructure لـ records وlists وmaps وتحويلها إلى متغيرات مسماة، مع استخدام wildcards وعناصر الباقي للحصول على تطابق واضح.
الأسئلة الشائعة
هل درس «التفكيك باستخدام Patterns» مجاني؟
نعم — نص درس «التفكيك باستخدام Patterns» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «التفكيك باستخدام Patterns»؟
فكّك Records والقوائم وMaps تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «التفكيك باستخدام Patterns»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- Records: Tuples خفيفة
- حقول Records الموضعية والمسمّاة
- التفكيك باستخدام Patterns
- Patterns وGuards في switch