Enums מספריים באמצעות טבלאות
חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 56 מתוך 80.
כך נראה דפוס טבלת הקבועים במלואו. בחרו שם לטבלה ב־PascalCase, תנו לכל איבר מספר מפורש, ומאותו רגע הקוד משתמש בשמות:
local UserRole = {
Admin = 1,
Editor = 2,
Viewer = 3,
}בניגוד ל־enum של TypeScript, המספרים אינם מוקצים אוטומטית. אתם בוחרים כל ערך. התחלה מ־1 מתאימה היטב למוסכמות של Lua, אבל כל שיטה עובדת (גם קודים בסגנון HTTP כמו 200 ו־404 מתאימים).
האיברים מועילים במיוחד בהשוואות. פונקציה שמקבלת תפקיד יכולה להסתעף לפי הקבועים בעלי השמות במקום לפי מספרים חשופים:
local function checkPermissions(role: number)
if role == UserRole.Admin then
print("Full access granted")
elseif role == UserRole.Editor then
print("Edit access granted")
else
print("View access only")
end
endשימו לב שהפרמטר מוגדר מטיפוס number: דפוס הטבלה לבדו אינו מגביל את המספרים שאפשר להשתמש בהם. ההבטחה הזאת היא בדיוק מה שאיחודי ליטרלים מוסיפים בשיעור הבא.
אתגר
קלציין שלוש רמות קושי באמצעות טבלת קבועים.
- צור
local Level = {Easy = 1, Normal = 2, Hard = 3}. - כתוב
local function describeLevel(level: number): stringשמחזירה"Relaxed"עבורLevel.Easy, את"Standard"עבורLevel.Normal, ובכל מקרה אחר את"Brutal". - הדפס את
Level.Hard, ואז אתdescribeLevel(Level.Normal).
לחץ על הרצת קוד: הפלט מציג את 3 ואת Standard.
נסו בעצמכם
-- 1) טבלת הקבועים Level (Easy = 1, Normal = 2, Hard = 3)
-- 2) describeLevel(level: number): מחרוזת באמצעות if/elseif/else
-- 3) הדפיסו את Level.Hard, ואז את describeLevel(Level.Normal)
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםערכי ברירת מחדל לבוליאניםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
מספר, מחרוזת ובוליאניהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוס מפורשותסיכום: תרגול בטיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים8Enums בדרך של Luau
תבנית ה-Enum ב-LuauEnums מספריים באמצעות טבלאותEnums של מחרוזות כאיחודיםשימוש ב-Enums של איחודי ערכים מילולייםהקפאת טבלאות קבועותסיכום: Enums בדרך של Luau3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספה וקריאה של איבריםמהו טיפוס Map?הגדרה וגישה למפותמעבר על טבלאותטבלאות במבנים מעורביםקריאת רשתבניית רשתtable.unpackסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין