מבנים לעומת טבלאות לא מובנות
חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 40 מתוך 73.
כעת יש לך שתי דרכים לעבוד עם טבלאות רשומות: הדרך החופשית שבה השתמשת תמיד ב-Lua, וצורות מוצהרות. כדאי לעצור לרגע ולבחון מה כל אחת מהן נותנת לך.
טבלה חופשית מקבלת כל דבר. לגמישות הזאת יש מחיר: טעות באיות של שדה (user.nmae) תגרום לכך שתקבל בשקט nil; שכחת שדה, והבאג יתגלה הרחק משם, בזמן ריצה, בקוד הראשון שייגע בחור:
local user = {name = "Ana", age = 20}
print(user.nmae) -- טבלה ללא הגדרה קשיחה: מדפיסה nil בלי להתריעהגדרת צורה מעבירה את הטעויות האלה מזמן הריצה לזמן העריכה. הבודק מסמן את שגיאת ההקלדה ברגע שכתבת אותה, העורך שלך יכול להשלים אוטומטית שמות של שדות, והצהרת type משמשת גם כתיעוד של תוכן הטבלה:
type User = {name: string, age: number}
local user: User = {name = "Ana", age = 20}
print(user.nmae) -- ✗ שגיאת טיפוס: המפתח 'nmae' לא נמצא ב-Userאם הגעת מ-TypeScript, שים לב של-Luau אין מילת מפתח interface: type משמשת לכל הצורות. גם אין "מיזוג הצהרות": הצהרה על שני טיפוסים באותו שם באותו תחום היא שגיאה, ולכן לכל צורה יש בדיוק הגדרה אחת.
הצורות של Luau הן מבניות: כל טבלה עם השדות הנכונים מהטיפוסים הנכונים מתאימה, בלי קשר למקום או לאופן שבו נוצרה. גם לטבלאות חופשיות עדיין יש מקום: סקריפטים מהירים ונתונים דינמיים באמת אינם זקוקים לצורה מוצהרת. אבל לכל דבר שמועבר בין פונקציות, צורה תופסת טעויות כשהתיקון שלהן עדיין זול.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
טיפוסים בסיסיים: num, str, boolהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוסים מפורשותסיכום: תרגול טיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספת איברים וקריאתםמהו טיפוס Map?הצהרה על מפות וגישה אליהןמעבר על טבלאותטבלאות בעלות מבנים מעורביםמערכים רב־ממדיים מטיפוס מוגדרtable.unpack ו־Varargsסיכום: מערכים ומפות6הוספת טיפוסים למבני טבלה
הערות טיפוס בשורה למבניםכינויי טיפוס למבניםמאפיינים אופציונלייםמבנים לעומת טבלאות לא מובנותהרחבת מבניםהוספת מתודות למבניםSelf ומתודות עם נקודתייםסיכום: הגדרת מבני טבלהתרגלו בעצמכם: קומפיילר Luau אונליין