Menu
Coddy logo textTech

תבנית ה-Enum ב-Luau

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

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

דפוס 1: טבלת קבועים. טבלה פשוטה ממפה שמות בעלי משמעות לערכים, ומחליפה את "מספרי הקסם" הפזורים בקוד:

local Status = {
    Pending = 1,
    Active = 2,
    Done = 3,
}

print(Status.Active) -- 2

זהו ערך ממשי בזמן ריצה: אפשר לקרוא את Status.Active, להשוות אליו ולהעביר אותו הלאה, בדיוק כמו הטבלאות שבהן השתמשת עד עכשיו.

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

type Color = "red" | "green" | "blue"
local favorite: Color = "green" -- ✓
local oops: Color = "yellow"    -- ✗ שגיאת טיפוס

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

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

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

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

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