Menu
CoddyTech

Enums של מחרוזות כאיחודים

חלק מהיחידה מבוא ל-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}`) -- פונה למעלה

השווה בין שתי התבניות שיש לך עכשיו: טבלת הקבועים יוצרת ערך אחד בזמן ריצה (UserRole) שמכיל חברים, ואילו האיחוד המילולי לא יוצר שום ערך. אין טבלה בשם Direction, אלא רק כלל שהבודק אוכף לגבי המחרוזות שמתאימות. בזכות הערכים התיאוריים שמתעדים את עצמם, וללא עלות בזמן ריצה, איחודים מילוליים הם הסגנון המועדף לייצוג סוגי מנייה בקוד Luau.

challenge icon

אתגר

קל

שמרו כיוון שיכול להיות אחד מארבעה שמות בלבד.

  1. כתבו type Direction = "up" | "down" | "left" | "right".
  2. הצהירו על local facing: Direction = "left".
  3. הדפיסו את facing, ולאחר מכן את `The player moves {facing}`.

לחצו על הרצת קוד: הפלט מציג את left ואת The player moves left.

נסו בעצמכם

-- 1) הגדירו את Direction כטיפוס איחוד של ארבע מחרוזות
-- 2) local facing: Direction = "left"
-- 3) הדפיסו את facing, ואז את המשפט

כל השיעורים ביחידה מבוא ל-Luau

תרגלו בעצמכם: קומפיילר Luau אונליין