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

الجداول متعدده الأشكال

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

تحتوي المصفوفات على قيم متعددة من نوع واحد؛ وتحتوي الخرائط على نوع مفتاح واحد ونوع قيمة واحد. ولكن معظم جداول Lua الشائعة تمزج بين الأنواع تحت حقول مسمى (named fields) — مثل لاعب يتضمن الاسم من نوع string، والنتيجة من نوع number، وعلامة من نوع boolean. يحدد Luau أنواع هذه الجداول باستخدام شكل (shape): وهو نوع جدول يسرد كل field ونوعه الخاص (its own type).

type Point = {x: number, y: number}

local origin: Point = {x = 0, y = 0}
print(origin.x)

الكلمة المفتاحية type تُنشئ اسمًا مستعارًا للنوع (type alias) — وهو اسم قابل لإعادة الاستخدام للشكل. إنه موجود فقط لأداة الفحص: لا يتم إنشاء أي قيمة أثناء التشغيل باسم Point. يمكن أن يكون لكل field type مختلف (each has a different type):

type Player = {name: string, score: number, active: boolean}

local player: Player = {name = "Rio", score = 1500, active = true}
print(`{player.name} has {player.score} points`)

مع الإعلان عن الـ shape، تعرف أداة الفحص أن player.score عبارة عن number وتكتشف الأخطاء مبكرًا: خطأ إملائي مثل player.scroe (لا يوجد مثل هذا الـ field)، أو تعيين player.score = "high" (نوع خاطئ). هذه مجرد بداية — سيتناول فصل لاحق الأشكال والحقول الاختيارية والدوال بشكل أعمق بكثير.

challenge icon

التحدي

سهل

قم بتعريف اسم مستعار للنوع Player لشكل يحتوي على ثلاثة حقول: name: string و score: number و active: boolean.

قم بإنشاء local player: Player بـ name يساوي "Rio" و score يساوي 1500 و active معينة على true.

اطبع، كل منها في سطر مستقل:

  1. اسم الـ player
  2. الـ score الخاص بالـ player
  3. علامة active الخاصة بالـ player
  4. السطر بالتحديد Rio has 1500 points الذي تم بناؤه باستخدام تضمين النصوص (string interpolation) من الحقول

جرّب بنفسك

-- اكتب الكود هنا
-- 1) type Player = {name: string, score: number, active: boolean}
-- 2) أنشئ player: Player = {name = "Rio", score = 1500, active = true}
-- 3) اطبع name, score, active, ثم سطر الملخص المُقحَم
quiz iconاختبر نفسك

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

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