טבלאות בעלות מבנים מעורבים
חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 18 מתוך 73.
מערכים מכילים ערכים רבים מסוג אחד; מפות מכילות סוג אחד של מפתחות וסוג אחד של ערכים. אבל טבלאות Lua הנפוצות ביותר שלך משלבות סוגים בתוך שדות בעלי שם: שחקן עם שם מסוג מחרוזת, ניקוד מספרי ודגל בוליאני. Luau מגדיר טיפוסים כאלה באמצעות צורה: טיפוס טבלה שמפרט כל שדה ואת הטיפוס שלו.
type Point = {x: number, y: number}
local origin: Point = {x = 0, y = 0}
print(origin.x)מילת המפתח type יוצרת כינוי טיפוס: שם לשימוש חוזר עבור הצורה. הוא קיים רק עבור הבודק: לא נוצר ערך בזמן ריצה בשם Point. לכל שדה יכול להיות טיפוס שונה:
type Player = {name: string, score: number, active: boolean}
local player: Player = {name = "Rio", score = 1500, active = true}
print(`{player.name} has {player.score} points`)לאחר שהצורה הוגדרה, הבודק יודע ש-player.score הוא מספר ומסמן טעויות מוקדם: שגיאת הקלדה כמו player.scroe (אין שדה כזה), או השמה של player.score = "high" (טיפוס שגוי). זהו רק טעימה ראשונה: פרק מאוחר יותר מעמיק הרבה יותר בצורות, בשדות אופציונליים ובמתודות.
אתגר
קלהגדירו כינוי טיפוס Player למבנה עם שלושה שדות: name: string, score: number ו-active: boolean.
צרו local player: Player עם השם "Rio", הניקוד 1500 ו-active שמוגדר ל-true.
הדפיסו, כל אחד בשורה נפרדת:
- את שם השחקן
- את הניקוד של השחקן
- את דגל הפעילות של השחקן
- את השורה המדויקת
Rio has 1500 pointsשנבנתה באמצעות שזירת מחרוזת מתוך השדות
נסו בעצמכם
-- כתבו כאן קוד
-- 1) הגדירו type Player = {name: string, score: number, active: boolean}
-- 2) צרו player: Player = {name = "Rio", score = 1500, active = true}
-- 3) הדפיסו את name, score, active, ואז את שורת הסיכום עם אינטרפולציה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
טיפוסים בסיסיים: num, str, boolהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוסים מפורשותסיכום: תרגול טיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספת איברים וקריאתםמהו טיפוס Map?הצהרה על מפות וגישה אליהןמעבר על טבלאותטבלאות בעלות מבנים מעורביםמערכים רב־ממדיים מטיפוס מוגדרtable.unpack ו־Varargsסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין