التعيين المتعدد ومعالجة nil

تعديل
نسخ الدرس
تحميل الدرس

التعيين المتعدد ومعالجة nil

في هذا الدرس، سنتعلم تقنيات متقدمة للتعامل مع المتغيرات في روبي: التعيين المتعدد (Parallel Assignment) والتعامل الآمن مع القيم الفارغة (nil).

التعيين المتعدد (Parallel Assignment)

التعيين المتعدد يسمح لك بتعيين عدة قيم لعدة متغيرات في سطر واحد.

الصيغة الأساسية

أمثلة عملية

تبادل القيم (Swapping)

من أقوى استخدامات التعيين المتعدد هو تبادل قيم متغيرين بدون متغير مؤقت:

مقارنة مع اللغات الأخرى

في معظم اللغات البرمجية، تحتاج متغيراً مؤقتاً:

تبادل ثلاثة متغيرات أو أكثر

عدم تطابق عدد المتغيرات والقيم

قيم أكثر من المتغيرات

القيم الزائدة تُهمل:

متغيرات أكثر من القيم

المتغيرات الزائدة تصبح nil:

التعيين المتعدد مع المصفوفات

تفكيك مصفوفة

تجميع القيم الزائدة بـ splat (*)

ما هو nil؟

nil هو كائن خاص في روبي يمثل "لا شيء" أو "غياب القيمة":

متى نواجه nil؟

مشكلة nil

محاولة استدعاء دالة على nil تسبب خطأ:

عامل الملاحة الآمنة (&.)

عامل الملاحة الآمنة (Safe Navigation Operator) يمنع أخطاء nil:

كيف يعمل &.؟

  • إذا كان الكائن nil، يُرجع nil مباشرة بدون استدعاء الدالة
  • إذا كان الكائن موجوداً، يستدعي الدالة بشكل طبيعي

سلسلة الملاحة الآمنة

التحقق من nil

باستخدام nil?

باستخدام unless

القيم الافتراضية مع ||

القيم الافتراضية مع ||=

جدول ملخص

التقنيةالوصفمثال
a, b = 1, 2تعيين متعددتعيين عدة قيم في سطر واحد
a, b = b, aتبادل القيمتبديل قيمتي متغيرين
first, *rest = arrتفكيك مع splatفصل العنصر الأول عن الباقي
&.ملاحة آمنةتجنب أخطاء nil
value || defaultقيمة افتراضيةاستخدام بديل إذا كانت القيمة nil
var ||= valueتعيين شرطيتعيين فقط إذا كانت القيمة nil

أمثلة عملية

مثال 1: معالجة بيانات مستخدم

مثال 2: تبادل ترتيب عناصر

مثال 3: استخراج أول وآخر عنصر

مثال 4: معالجة إدخال آمنة

نصائح مهمة

  1. استخدم التعيين المتعدد لجعل الشيفرة أكثر وضوحاً ومختصراً
  2. استخدم تبادل القيم بدلاً من المتغيرات المؤقتة
  3. استخدم &. عند التعامل مع قيم قد تكون nil
  4. استخدم || لتوفير قيم افتراضية
  5. تحقق من nil قبل استخدام القيم في العمليات الحساسة
  6. لا تفرط في استخدام &. - أحياناً يكون الخطأ مفيداً لاكتشاف المشاكل

التمرين

اكتب برنامجاً يقوم بـ:

  1. تعريف متغيرين x = 5 و y = 10 باستخدام التعيين المتعدد
  2. طباعة قيمتيهما الأصليتين
  3. تبادل قيمتيهما
  4. طباعة قيمتيهما بعد التبادل
  5. تعريف متغير name يساوي nil
  6. استخدام &. لطباعة طول الاسم بشكل آمن (سيطبع سطراً فارغاً)
  7. استخدام || لطباعة قيمة افتراضية "مجهول" بدلاً من nil

الناتج المتوقع: