מעבר על טבלאות
חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 17 מתוך 80.
כבר ביצעת לולאות על טבלאות 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 והשתמש בהם כדי לגשת למפה.
אתגר
קלהדפיסו שבוע של טמפרטורות ואת הסכום שלהן.
- הכריזו על
local temps: {number} = {12, 15, 11, 14}ועלlocal total = 0. - השתמשו בלולאה
for day: number, temp: number in ipairs(temps) do, הדפיסו את`Day {day}: {temp}`והוסיפו אתtempאלtotal. - אחרי הלולאה, הדפיסו את
total.
לחצו על הרצת קוד: הפלט מציג Day 1: 12 עד Day 4: 14, ואז 52.
נסו בעצמכם
-- 1) להכריז על temps: {number} ועל total = 0
-- 2) לעבור בלולאה עם day ו-temp מוגדרי טיפוס, להדפיס כל יום ולהוסיף ל-total
-- 3) להדפיס את total
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםערכי ברירת מחדל לבוליאניםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
מספר, מחרוזת ובוליאניהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוס מפורשותסיכום: תרגול בטיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספה וקריאה של איבריםמהו טיפוס Map?הגדרה וגישה למפותמעבר על טבלאותטבלאות במבנים מעורביםקריאת רשתבניית רשתtable.unpackסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין