טיפוסים ליטרליים
חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 35 מתוך 80.
טיפוסים כמו string מאפשרים כל מחרוזת, אבל לפעמים רק כמה ערכים מדויקים מתאימים. טיפוס מילולי משתמש בערך עצמו בתור הטיפוס:
local mode: "dark" = "dark" -- רק המחרוזת "dark" מותרת
local locked: true = true -- רק הערך הבוליאני true מותרכשלעצמם, טיפוסים בעלי ערך יחיד הם בגדר סקרנות. בשילוב עם איחודים, הם הופכים לאחד הכלים השימושיים ביותר של Luau: קבוצה מבוקרת בקפידה של ערכים מותרים:
type Direction = "north" | "south" | "east" | "west"
type GameState = "menu" | "playing" | "paused" | "gameover"
local move: Direction = "north" -- ✓
local state: GameState = "playing" -- ✓
-- local bad: Direction = "diagonal" -- ✗ שגיאת טיפוס!כך, שגיאת הקלדה כמו "nort" או ערך לא תקין כמו "diagonal" מתגלים בזמן העריכה. עם string רגיל, הם היו עוברים בלי בעיה וגורמים לתקלה בזמן הריצה, אם יתמזל מזלך להבחין בה.
טיפוסים מילוליים מבחינים בין אותיות רישיות לקטנות וחייבים להיות מדויקים: "North" אינו תואם ל־"north". מחרוזות מילוליות הן המקרה הנפוץ, אבל גם ערכים מילוליים בוליאניים ומספריים (בגרסאות חדשות יותר של Luau) פועלים באותו אופן. הדפוס הזה, איחוד של מחרוזות מילוליות, הוא גם הדרך שבה Luau מחליפה את הטיפוסים המנויים של שפות אחרות, כפי שתראו בפרק מאוחר יותר.
אתגר
קלאפשר רק ארבעה שמות כיוונים מדויקים.
- כתבו
type Direction = "north" | "south" | "east" | "west". - כתבו
local function movePlayer(direction: Direction): stringשמחזירה`Moving {direction}`. - הכריזו על
local playerDirection: Direction = "east"והדפיסו אתmovePlayer(playerDirection).
לחצו על Run Code: הפלט מציג Moving east.
נסו בעצמכם
-- 1) type Direction = "north" | "south" | "east" | "west"
-- 2) movePlayer(direction: Direction): string
-- 3) local playerDirection: Direction = "east", ואז הדפס את התנועה
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםערכי ברירת מחדל לבוליאניםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
מספר, מחרוזת ובוליאניהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוס מפורשותסיכום: תרגול בטיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספה וקריאה של איבריםמהו טיפוס Map?הגדרה וגישה למפותמעבר על טבלאותטבלאות במבנים מעורביםקריאת רשתבניית רשתtable.unpackסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין