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.
אתגר
קלצרו טיפוס איחוד של ערכים מילוליים בשם Direction עם האיברים "up", "down", "left" ו-"right".
צרו ארבעה משתנים, שכל אחד מהם מצוין עם הטיפוס Direction:
upDirection="up"downDirection="down"leftDirection="left"rightDirection="right"
הדפיסו, כל אחד בשורה נפרדת:
upDirectiondownDirectionleftDirectionrightDirection- את ההודעה
The player moves left, שנבנית באמצעות אינטרפולציה של מחרוזת מתוךleftDirection
נסו בעצמכם
-- כתבו כאן קוד
-- 1) הגדירו את הטיפוס Direction כאיחוד של ארבע מחרוזות מילוליות
-- 2) צרו את ארבעת המשתנים עם ציון הטיפוס
-- 3) הדפיסו כל אחד מהם, ואז את ההודעה עם האינטרפולציה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
טיפוסים בסיסיים: num, str, boolהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוסים מפורשותסיכום: תרגול טיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים8Enums בדרך של Luau
תבנית ה-Enum ב-LuauEnums מספריים באמצעות טבלאותEnums של מחרוזות כאיחודיםשימוש ב-Enums של איחודי ערכים מילולייםהקפאת טבלאות קבועותסיכום: Enums בדרך של Luau3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספת איברים וקריאתםמהו טיפוס Map?הצהרה על מפות וגישה אליהןמעבר על טבלאותטבלאות בעלות מבנים מעורביםמערכים רב־ממדיים מטיפוס מוגדרtable.unpack ו־Varargsסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין