Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تحديد أنواع الدوال المجهولة

جزء من قسم مقدمة إلى Luau في رحلة Lua على Coddy. الدرس 23 من 73.

في Lua، الدوال هي قيم: لقد خزّنتها في متغيرات ومرّرتها: local f = function(x) return x * 2 end. هذه الدوال المجهولة (تعبيرات الدوال) تقبل تعليقات الأنواع تمامًا كما تفعل الدوال المُسمّاة:

local double = function(x: number): number
    return x * 2
end

local shout = function(text: string): string
    return string.upper(text) .. "!"
end

تحصل المعاملات على name: type داخل القوسين، ويتبع نوع الإرجاع القوسَ الختامي: والاختلاف الوحيد عن الدالة المُسمّاة هو أن الكلمة المفتاحية function لا يكون لها اسم، ويُسنَد التعبير بأكمله إلى متغير.

إذا كنت قد رأيت JavaScript أو TypeScript، فلاحظ أن Luau لا تحتوي على دوال سهمية. لا توجد صياغة =>. كل تعبير دالة يُكتب باستخدام function ... end، سواء كان طويلًا أم قصيرًا.

بعد إسنادها، تستدعيها عبر المتغير مثل أي دالة: تُرجع double(21) القيمة 42، ويتحقق المدقّق من كل استدعاء مقارنةً بالتعليقات التوضيحية التي كتبتها.

challenge icon

التحدي

سهل

أعد كتابة هذه الدالة المسمّاة باعتبارها دالة مجهولة مخزّنة في متغير محلي، مع الحفاظ على جميع تعليقات الأنواع:

function subtract(a: number, b: number): number
    return a - b
end

إذًا: أنشئ local subtract = function(...) ... end باستخدام أنواع المعاملات والإرجاع نفسها.

ثم أنشئ دالتين مجهولتين مكتوبتي النوع إضافيتين:

  • createMessage: تستقبل text: string، وتُرجع السلسلة النصية "Message: [text]" (نوع الإرجاع string)
  • isPositive: تستقبل num: number، وتُرجع true إذا كان الرقم أكبر من 0، وإلا تُرجع false (نوع الإرجاع boolean)

استدعِ واطبع كل قيمة في سطر مستقل:

  1. subtract(10, 3)
  2. createMessage("Hello World")
  3. isPositive(-5)
  4. isPositive(8)

جرّب بنفسك

-- اكتب الكود هنا
-- local subtract = function(a: number, b: number): number ... end
-- local createMessage = function(text: string): string ... end
-- local isPositive = function(num: number): boolean ... end
-- ثم اطبع النتائج الأربعة
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس مقدمة إلى Luau

تدرّب بنفسك: مترجم Lua عبر الإنترنت