Menu
Coddy logo textTech

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

חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 53 מתוך 73.

מספרים יוצרים יומנים מסתוריים: לראות 2 לא אומר לך הרבה, לראות "down" אומר לך הכול. כדי ליצור enums קריאים, טיפוסי איחוד של ערכים מילוליים ב-Luau הם הכלי המתאים: טיפוס שהחברים שלו הם מחרוזות מדויקות:

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

local facing: Direction = "up"    -- ✓
local typo: Direction = "upp"     -- ✗ שגיאת טיפוס בזמן עריכה

משתנה שמצוין לו הטיפוס Direction יכול להכיל את ארבע המחרוזות האלה ושום דבר אחר. אם תכתוב אחת מהן בשגיאת כתיב, הבודק יזהה זאת מיד: הבאג לעולם לא יגיע לשחקן.

בזמן ריצה, הערכים הם מחרוזות רגילות. הדפס אותן, שרשר אותן והשווה אותן באמצעות ==. כל מה שידוע לך על מחרוזות תקף גם כאן:

print(facing)            -- למעלה
print(`facing {facing}`) -- facing למעלה

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

challenge icon

אתגר

קל

צרו טיפוס איחוד של ערכים מילוליים בשם Direction עם האיברים "up", "down", "left" ו-"right".

צרו ארבעה משתנים, שכל אחד מהם מצוין עם הטיפוס Direction:

  • upDirection = "up"
  • downDirection = "down"
  • leftDirection = "left"
  • rightDirection = "right"

הדפיסו, כל אחד בשורה נפרדת:

  1. upDirection
  2. downDirection
  3. leftDirection
  4. rightDirection
  5. את ההודעה The player moves left, שנבנית באמצעות אינטרפולציה של מחרוזת מתוך leftDirection

נסו בעצמכם

-- כתבו כאן קוד
-- 1) הגדירו את הטיפוס Direction כאיחוד של ארבע מחרוזות מילוליות
-- 2) צרו את ארבעת המשתנים עם ציון הטיפוס
-- 3) הדפיסו כל אחד מהם, ואז את ההודעה עם האינטרפולציה
quiz iconבחנו את עצמכם

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

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

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