הערות טיפוס בשורה למבנים
חלק מהיחידה מבוא ל-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 רגילה. מבנים מוטבעים מושלמים עבור מבנים חד-פעמיים שאינך מתכנן לעשות בהם שימוש חוזר; בשיעור הבא תיתן למבנים שם.
אתגר
קלצרו משתנה בשם student עם הצהרת מבנה מוטבעת שמגדירה:
nameמסוגstringstudentIdמסוגnumberisEnrolledמסוגboolean
אתחלו אותו עם השם "Sarah Johnson", עם studentId 12345 ועם isEnrolled true.
צרו משתנה שני בשם course עם הצהרת מבנה מוטבעת שמגדירה:
titleמסוגstringcreditsמסוגnumberinstructorמסוגstring
אתחלו אותו עם הכותרת "Introduction to Luau", עם מספר נקודות זכות 3 ועם המדריך "Dr. Smith".
הדפיסו, כל אחד בשורה משלו:
- את שם התלמיד
- את מזהה התלמיד
- את כותרת הקורס
- את מספר נקודות הזכות
נסו בעצמכם
-- כתבו כאן קוד
-- 1) הכריזו על student עם הערת טיפוס של מבנה הנתונים במקום
-- 2) הכריזו על course עם הערת טיפוס של מבנה הנתונים במקום
-- 3) הדפיסו את ארבעת השדות המבוקשים
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
טיפוסים בסיסיים: num, str, boolהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוסים מפורשותסיכום: תרגול טיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספת איברים וקריאתםמהו טיפוס Map?הצהרה על מפות וגישה אליהןמעבר על טבלאותטבלאות בעלות מבנים מעורביםמערכים רב־ממדיים מטיפוס מוגדרtable.unpack ו־Varargsסיכום: מערכים ומפות6הוספת טיפוסים למבני טבלה
הערות טיפוס בשורה למבניםכינויי טיפוס למבניםמאפיינים אופציונלייםמבנים לעומת טבלאות לא מובנותהרחבת מבניםהוספת מתודות למבניםSelf ומתודות עם נקודתייםסיכום: הגדרת מבני טבלהתרגלו בעצמכם: קומפיילר Luau אונליין