הרחבת מבנים
חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 43 מתוך 80.
לצורות קשורות יש לעיתים קרובות שדות משותפים. כל Admin הוא גם User; העתקת השדות המשותפים לשתי ההצהרות עלולה לגרום להן להתפצל.
כבר פגשת את אופרטור החיתוך & כששילבת כינויים. הוא פועל בדיוק באותו אופן גם עבור צורות. A & B פירושו "יש בו כל מה שיש ב-A וגם כל מה שיש ב-B":
type User = {name: string, age: number}
type Admin = User & {level: number}
-- Admin דורש כעת: name, age וגם level
local root: Admin = {name = "Root", age = 35, level = 9}בעוד ש-TypeScript זקוק למילת המפתח הנפרדת extends עבור ממשקים, ב-Luau לא צריך שום דבר חדש: חיתוכים כבר עושים את העבודה. אפשר לשרשר כמה חלקים:
type Contact = {email: string}
type Developer = User & Contact & {yearsExperience: number}אל תבלבל בין & לבין |: איחוד A | B הוא אחת משתי הצורות, בעוד שחיתוך A & B חייב להתאים לשתיהן בו-זמנית. ומכיוון של-Admin יש את כל השדות של User, אפשר להעביר ערך מסוג Admin לכל מקום שבו מצפים ל-User.
אתגר
קלהרחב מבנה של עובד למבנה של מנהל.
- כתוב
type Employee = {name: string, department: string}ו-type Manager = Employee & {teamSize: number}. - צור
local teamLead: Manager = {name = "Alice Johnson", department = "Engineering", teamSize = 8}. - הדפס
`{teamLead.name} manages {teamLead.teamSize} people`, ואזteamLead.department.
לחץ על הרצת קוד: הפלט מציג Alice Johnson manages 8 people ו-Engineering.
נסו בעצמכם
-- 1) הגדירו type Employee, ואז type Manager = Employee & {...}
-- 2) הגדירו local teamLead: Manager = {...}
-- 3) הדפיסו את שורת הסיכום, ואז את המחלקה
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםערכי ברירת מחדל לבוליאניםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
מספר, מחרוזת ובוליאניהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוס מפורשותסיכום: תרגול בטיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספה וקריאה של איבריםמהו טיפוס Map?הגדרה וגישה למפותמעבר על טבלאותטבלאות במבנים מעורביםקריאת רשתבניית רשתtable.unpackסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין