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

المشكلة التي تحلها الأنواع المعممة

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

تخيّل أنك تحتاج إلى function تُرجع ببساطة أي قيمة تمرّرها إليها: دالة الهوية. باستخدام الأنواع التي تعرفها حتى الآن، لديك خياران، وكلاهما مؤلم.

الخيار الأول: اكتب نسخة منفصلة لكل نوع. الأجسام متطابقة؛ الاختلاف الوحيد هو التعليقات التوضيحية:

local function echoNumber(value: number): number
    return value
end

local function echoString(value: string): string
    return value
end

كل نوع جديد يعني نسخة أخرى، وأي خطأ تُصلحه في إحداها يجب إصلاحه في جميع النسخ. وهذا تحديدًا هو التكرار الذي تكتب functions لتجنّبه.

الخيار الثاني: اجمعها في function واحدة مكتوبة باستخدام any:

local function echo(value: any): any
    return value
end

الآن تتعامل function واحدة مع كل شيء، لكنك دفعت الثمن من أمان الأنواع. عندما تستدعي echo("hello")، لم يعد checker يعرف أن النتيجة هي string. إنه يعرف فقط any، لذلك يتوقف الإكمال التلقائي وتتسلل أخطاء الأنواع: تضيع الصلة بين ما دخل وما خرج.

ما تريده حقًا هو function تعمل مع كل نوع وتتذكر النوع الذي استخدمته كل استدعاء. وهذا بالضبط ما تمنحك إياه الأنواع العامة، وهي موضوع هذا الفصل.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

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

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

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