Menu
CoddyTech

איטרציה באמצעות ipairs()

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 2 מתוך 54.

בעוד ש-pairs() פועלת עם כל מבנה של טבלה, Lua מספקת פונקציה ייעודית בשם ipairs(), שתוכננה במיוחד לטבלאות בסגנון רשימה. פונקציה זו עוברת על טבלאות לפי סדר רציף, החל באינדקס 1 וממשיכה עד שהיא נתקלת בערך nil.

התחביר של ipairs() דומה לזה של pairs():

for index, value in ipairs(myList) do
    -- השתמשו כאן ב-index וב-value
end

הנה דוגמה עם רשימה של פריטי משימה:

local questItems = {"Map", "Compass", "Torch", "Rope"}

for i, item in ipairs(questItems) do
    print(i .. ". " .. item)
end

פלט:

1. Map
2. Compass
3. Torch
4. Rope

ההבדל העיקרי לעומת pairs() הוא ש־ipairs() נעצרת מיד כשהיא מוצאת ערך nil, גם אם יש אחריו איברים נוספים.

challenge icon

אתגר

קל

כתבו פונקציה listTasks שמקבלת טבלת tasks ומחזירה מחרוזת מעוצבת שמפרטת את כל המשימות עם מספרי המיקום שלהן.

השתמשו ב־ipairs() כדי לעבור על המשימות לפי הסדר ולבנות מחרוזת שבה כל שורה מציגה את מספר המשימה ואחריו את שם המשימה בפורמט number. task. כל משימה צריכה להופיע בשורה נפרדת.

פרמטרים:

  • tasks (טבלה): טבלה בסגנון רשימה שמכילה שמות של משימות כמחרוזות

ערך מוחזר: מחרוזת שבה כל משימה ממוספרת ומופיעה בשורה נפרדת. פורמט: 

1. task1
2. task2
3. task3

נסו בעצמכם

function listTasks(tasks)
    -- כתבו כאן קוד
end
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

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