Menu
CoddyTech

تعدادات النصوص كاتحادات (Unions)

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

تجعل الأرقام السجلات غامضة: رؤية 2 لا تخبرك بالكثير، بينما رؤية "down" تخبرك بكل شيء. ولإنشاء تعدادات قابلة للقراءة، تُعد أنواع الاتحاد الحرفي في Luau الأداة المناسبة: نوعًا تكون أعضاؤه سلاسل نصية محددة حرفيًا:

type Direction = "up" | "down" | "left" | "right"

local facing: Direction = "up"    -- ✓
local typo: Direction = "upp"     -- ✗ خطأ في النوع أثناء التحرير

يمكن لمتغير مُعرّف بالنوع Direction أن يحتوي على تلك السلاسل الأربع ولا شيء غيرها. أخطئ في كتابة إحداها وسيلتقط المدقّق الخطأ فورًا: لن يصل الخلل أبدًا إلى اللاعب.

في وقت التشغيل، تكون القيم سلاسل نصية عادية. اطبعها، أو ادمجها، أو قارنها باستخدام ==. كل ما تعرفه عن السلاسل النصية ينطبق عليها:

print(facing)            -- للأعلى
print(`facing {facing}`) -- facing للأعلى

قارن بين النمطين المتاحين لديك الآن: ينشئ الجدول الثابت قيمة واحدة في وقت التشغيل (UserRole) تحتوي على الأعضاء، بينما لا ينشئ اتحاد القيم الحرفية أي قيمة على الإطلاق. لا يوجد جدول Direction، بل قاعدة يفرضها المدقّق تحدد السلاسل النصية الملائمة. إن القيم الوصفية التي توثق نفسها، من دون أي تكلفة في وقت التشغيل، تجعل اتحادات القيم الحرفية الخيار المفضل لأسلوب التعداد في شيفرة Luau.

challenge icon

التحدي

سهل

خزّن اتجاهًا لا يمكن أن يكون إلا واحدًا من أربعة أسماء.

  1. اكتب type Direction = "up" | "down" | "left" | "right".
  2. صرّح عن local facing: Direction = "left".
  3. اطبع facing، ثم `The player moves {facing}`.

اضغط على Run Code: يُظهر الناتج left وThe player moves left.

جرّب بنفسك

-- 1) عرّف النوع Direction بوصفه اتحادًا لأربع سلاسل نصية
-- 2) local facing: Direction = "left"
-- 3) اطبع facing، ثم الجملة

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

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