Menu
Coddy logo textTech

הערות טיפוס בשורה למבנים

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

ב-Lua השתמשת בטבלאות כרשומות במשך זמן רב: local user = {name = "Ana", age = 20}. אין שום דבר שמונע ממך לאיית שדה בצורה שגויה, לשכוח שדה או לאחסן מחרוזת במקום שבו אמור להיות מספר. תגלו זאת רק כשהקוד ירוץ.

Luau מאפשרת לך לתאר את המבנה של טבלה כזאת ישירות בהצהרה, ולפרט כל שדה ואת הטיפוס שלו בין סוגריים מסולסלים:

local user: {name: string, age: number} = {
    name = "Ana",
    age = 20,
}

השוו זאת לטיפוסי הטבלאות שאתם כבר מכירים: {number} מתאר מערך, ו-{[string]: number} מתאר מפה עם מפתחות כלשהם מסוג מחרוזת. מבנה מדויק יותר. הוא מציין כל שדה בנפרד ומגדיר טיפוס משלו לכל שדה.

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

local user: {name: string, age: number} = {
    name = "Ana",
    age = "twenty", -- ✗ שגיאת טיפוס: string אינו מספר
}

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

challenge icon

אתגר

קל

צרו משתנה בשם student עם הצהרת מבנה מוטבעת שמגדירה:

  • name מסוג string
  • studentId מסוג number
  • isEnrolled מסוג boolean

אתחלו אותו עם השם "Sarah Johnson", עם studentId 12345 ועם isEnrolled true.

צרו משתנה שני בשם course עם הצהרת מבנה מוטבעת שמגדירה:

  • title מסוג string
  • credits מסוג number
  • instructor מסוג string

אתחלו אותו עם הכותרת "Introduction to Luau", עם מספר נקודות זכות 3 ועם המדריך "Dr. Smith".

הדפיסו, כל אחד בשורה משלו:

  1. את שם התלמיד
  2. את מזהה התלמיד
  3. את כותרת הקורס
  4. את מספר נקודות הזכות

נסו בעצמכם

-- כתבו כאן קוד
-- 1) הכריזו על student עם הערת טיפוס של מבנה הנתונים במקום
-- 2) הכריזו על course עם הערת טיפוס של מבנה הנתונים במקום
-- 3) הדפיסו את ארבעת השדות המבוקשים
quiz iconבחנו את עצמכם

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

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

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