מעבר על טבלאות
חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 17 מתוך 73.
כבר ביצעת לולאות על טבלאות Lua פעמים רבות: ב-Luau הלולאות נשארות בדיוק אותו הדבר, ונוספים טיפוסים למשתני הלולאה. עבור מערכים, ipairs עוברת על האיברים לפי הסדר, מאינדקס 1 ועד #t, ואפשר להוסיף הערות טיפוס לשני המשתנים:
local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
print(`Day {day}: {temp}`)
endזכור ש-ipairs נעצרת באינדקס החסר הראשון: חור של nil באמצע מסיים את הלולאה מוקדם. לעיתים רחוקות זו בעיה במערכים שמנוהלים היטב, אבל כדאי לדעת זאת.
עבור מפות, השתמש ב-pairs, שעוברת על כל זוגות המפתח/ערך, כולל מפתחות מחרוזת. במפה מסוג {[string]: number}, משתני הלולאה הם מטבע הדברים string ו-number:
local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
print(`{name} is {age}`)
endהסתייגות חשובה: pairs עוברת על מפתחות חלק הגיבוב בסדר שאינו מובטח. הסדר עשוי להשתנות בין הרצות. כשנדרש פלט דטרמיניסטי (דוחות ממוינים, בדיקות), אסוף את המפתחות למערך, מיין אותו באמצעות table.sort, ואז עבור על המפתחות הממוינים באמצעות ipairs ושלוף את הערכים מהמפה לפי המפתח.
אתגר
קלצרו מערך מטיפוס מוגדר temps: {number} שמאותחל בערכים 18, 21, 19 ו-24.
עברו עליו בלולאה באמצעות ipairs, והוסיפו הצהרות טיפוס לשני משתני הלולאה (day: number, temp: number). עבור כל איבר הדפיסו בדיוק:
Day 1: 18(באמצעות אינטרפולציית מחרוזות עם backticks), והוסיפו כל טמפרטורה לסכום מצטבר.
לאחר הלולאה, הדפיסו את הסכום בשורה נפרדת.
נסו בעצמכם
-- כתבו כאן את הקוד
-- 1) הכריזו על temps: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
-- הדפיסו `Day {day}: {temp}` והוסיפו את הערך ל-total
-- 3) הדפיסו את הסכום הכולל אחרי הלולאה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
טיפוסים בסיסיים: num, str, boolהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוסים מפורשותסיכום: תרגול טיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספת איברים וקריאתםמהו טיפוס Map?הצהרה על מפות וגישה אליהןמעבר על טבלאותטבלאות בעלות מבנים מעורביםמערכים רב־ממדיים מטיפוס מוגדרtable.unpack ו־Varargsסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין