الدرس 5 من 10
الدوال والقيم المتعدّدة
- 11 دقيقة
- 5 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
return بعدّة قيم وافتراضات بـ or
الشرح
الدالة تُعرَّف بـ function name(a, b) ... end، والأفضل أن تسبقها local كما في المتغيّرات. وتسلّم نتيجتها بـ return، وفي Lua تستطيع أن تُرجع أكثر من قيمة: return newHp, healed، ويستقبلها المستدعي بـ local hp, healed = heal(90). لا جداول ولا كائنات وسيطة.
وليس في Lua قيم افتراضية في سطر التعريف. الوسيط الذي لم يُمرَّر يصل nil، فتكتب في أول الدالة amount = amount or 25. وهذا آمن مع الصفر، لأن الصفر صادق في Lua.
لكنه ينكسر مع القيم المنطقية: loud = loud or true تبقى true حتى لو مرّر المستدعي false صراحةً، فلها اكتب if loud == nil then loud = true end. وتذكّر أن local hp = heal(90) تأخذ القيمة الأولى وحدها وتُسقط الباقي بلا خطأ.
المطلوب
اكتب heal(hp, amount, maxHp)، وamount افتراضه 25 وmaxHp افتراضه 100. تُرجع قيمتين: الصحّة بعد الشفاء دون أن تتجاوز maxHp، ثم المقدار الذي شُفي فعلًا.
معايير التصحيح
5 معايير- heal دالة
- تُرجع قيمتين: الصحّة الجديدة ثم المقدار
- لا تتجاوز maxHp، والمقدار ما شُفي فعلًا
- amount افتراضه 25
- maxHp افتراضه 100