Menu
CoddyTech

المصفوفات المعممة

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

تصبح الأنواع العامة مفيدة حقًا عند التعامل مع الجداول. أنت تكتب بالفعل مصفوفات ذات أنواع مثل {number} أو {string}. داخل دالة عامة، يمكن أن يكون نوع العنصر ببساطة T، وتعني {T} «مصفوفة من أي نوع يتبيّن أن T عليه».

إليك المثال الكلاسيكي: جلب العنصر الأول من أي مصفوفة:

local function first<T>(items: {T}): T?
    return items[1]
end

مرّر {string}، وسيستنتج المدقّق أن T = string، لذا تكون النتيجة سلسلة نصية. مرّر {number}، وستكون النتيجة عددًا. تستبدل دالة واحدة مجموعة كاملة من النسخ المخصصة لكل نوع.

تأمّل نوع القيمة المُعادة عن كثب: إنه T?، وليس T. قد تكون المصفوفة فارغة، وعندئذ تكون items[1] هي nil: يعبّر النوع الاختياري الذي تعرّفت عليه سابقًا عن ذلك بصراحة: «قيمة من النوع T، أو nil». سينبّه المدقّق من يستدعي الدالة إلى ضرورة معالجة حالة nil قبل استخدام النتيجة، وهذا بالضبط ما تريده من لغة ذات أنواع لاكتشاف الأخطاء.

challenge icon

التحدي

سهل

احصل على العنصر الأول من أي مصفوفة.

  1. اكتب local function first<T>(items: {T}): T? التي تُرجع items[1].
  2. عرّف local fruits: {string} = {"apple", "banana"} وlocal empty: {number} = {}.
  3. اطبع first(fruits)، ثم first(empty).

اضغط على Run Code: يُظهر الناتج apple وnil.

جرّب بنفسك

-- 1) first<T>(items: {T}): T?
-- 2) fruits: {string} و{number} فارغة
-- 3) اطبع أول عنصر من كلٍّ منهما

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

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