Menu
Coddy logo textTech

טבלאות בעלות מבנים מעורבים

חלק מהיחידה מבוא ל-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" (טיפוס שגוי). זהו רק טעימה ראשונה: פרק מאוחר יותר מעמיק הרבה יותר בצורות, בשדות אופציונליים ובמתודות.

challenge icon

אתגר

קל

הגדירו כינוי טיפוס Player למבנה עם שלושה שדות: name: string, score: number ו-active: boolean.

צרו local player: Player עם השם "Rio", הניקוד 1500 ו-active שמוגדר ל-true.

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

  1. את שם השחקן
  2. את הניקוד של השחקן
  3. את דגל הפעילות של השחקן
  4. את השורה המדויקת 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, ואז את שורת הסיכום עם אינטרפולציה
quiz iconבחנו את עצמכם

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

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

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