Menu
CoddyTech

טיפוסים ליטרליים

חלק מהיחידה מבוא ל-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 מחליפה את הטיפוסים המנויים של שפות אחרות, כפי שתראו בפרק מאוחר יותר.

challenge icon

אתגר

קל

אפשר רק ארבעה שמות כיוונים מדויקים.

  1. כתבו type Direction = "north" | "south" | "east" | "west".
  2. כתבו local function movePlayer(direction: Direction): string שמחזירה `Moving {direction}`.
  3. הכריזו על 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

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