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

الدوال المجهولة

جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 13 من 54.

والآن بعد أن فهمتَ أنه يمكن تخزين الدوال في المتغيرات وتمريرها، توجد طريقة أكثر اختصارًا لكتابتها. فبدلًا من منح الدالة اسمًا دائمًا، يمكنك إنشاؤها مباشرةً في المكان الذي تحتاج إليها فيه. وتُسمّى هذه الدوال بالدوال المجهولة.

الدالة المجهولة هي ببساطة دالة بلا اسم. تعرّفها باستخدام الكلمة المفتاحية function متبوعةً مباشرةً بمعاملاتها وجسمها:

function(a, b)
    return a + b
end

ينشئ هذا قيمة function يمكن استخدامها فورًا. تكون functions المجهولة مفيدة بشكل خاص عند تمرير functions كوسائط إلى functions أخرى. هل تتذكر مثال الفرز المخصص من قبل؟ إليك كيف يبدو باستخدام function مجهولة:

local players = {
    {name = "Alice", score = 150},
    {name = "Bob", score = 200},
    {name = "Charlie", score = 175}
}

table.sort(players, function(a, b)
    return a.score > b.score
end)

بدلاً من تعريف function منفصلة ذات اسم للمقارنة، يتم إنشاء function مباشرةً باعتبارها الوسيطة الثانية لـ table.sort(). وهذا يجعل الشيفرة أكثر اختصارًا، ويحافظ على منطق الفرز في المكان الذي يُستخدم فيه.

challenge icon

التحدي

سهل

Write دالة filterByThreshold التي تتلقى numbers وthreshold وتُرجع table جديدة تحتوي فقط على الأرقام الأكبر من threshold.

استخدم table.insert() مع أسلوب الدالة المجهولة لتصفية numbers. أنشئ منطق التصفية بشكل مباشر دون تعريف دالة مسماة منفصلة.

المنطق:

  • أنشئ table فارغة
  • كرّر عبر table الخاصة بـ numbers
  • لكل رقم، استخدم دالة مجهولة للتحقق مما إذا كان يتجاوز threshold
  • إذا أعاد التحقق القيمة true، فأضف الرقم إلى table الخاصة بـ result
  • أعد table الخاصة بـ result بعد التصفية

المعلمات:

  • numbers (table): table بأسلوب القوائم تحتوي على قيم رقمية
  • threshold (number): الحد الأدنى للقيمة (حصريًا) للتصفية

القيمة المُرجعة: table تحتوي فقط على الأرقام الأكبر من threshold (table)

جرّب بنفسك

function filterByThreshold(numbers, threshold)
    -- اكتب الكود هنا
end
quiz iconاختبر نفسك

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

جميع دروس المنطق والتحكم في التدفق

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