Menu
Coddy logo textTech

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

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

כשעובדים עם טבלאות בסגנון מילון ב-Lua, לעיתים קרובות צריך לגשת לכל זוגות המפתח-ערך המאוחסנים בהן. הפונקציה pairs() מאפשרת זאת, בכך שהיא מאפשרת לך לעבור בלולאה על כל הרשומות בטבלה, ללא קשר לסוג המפתחות.התחביר לשימוש ב־pairs() בלולאת for נראה כך:
for key, value in pairs(myTable) do
    -- השתמשו כאן ב-key וב-value
end
בכל איטרציה של הלולאה, pairs() מספקת גם את המפתח וגם את הערך המתאים לו. פירוש הדבר הוא שאפשר לגשת לשני פרטי המידע ולעבוד איתם בו-זמנית.הנה דוגמה מעשית עם המלאי של שחקן:
local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end
הקוד הזה ידפיס את השם והכמות של כל פריט. הפונקציה pairs() פועלת עם כל סוג של מפתח, כולל מחרוזות, מספרים או אפילו טבלאות אחרות.עבודה עם מחרוזותב-Lua, אפשר לחבר מחרוזות באמצעות אופרטור השרשור, שהוא שתי נקודות (..). לדוגמה, "Hello" .. " " .. "World" מחזיר את "Hello World".אם צריך לעצב טקסט על פני כמה שורות, אפשר להשתמש בתו הבריחה של שורה חדשה, "\n". כש-Lua נתקל ב-"\n" בתוך מחרוזת, הוא מתייחס אליו כאל הוראה לעבור לשורה הבאה.לדוגמה, print("Line 1\nLine 2") יציג:
Line 1
Line 2
challenge icon

אתגר

קל

כתוב פונקציה printInventory שמקבלת טבלת inventory ומחזירה מחרוזת מעוצבת שמפרטת את כל הפריטים ואת הכמויות שלהם.

השתמש ב־pairs() כדי לעבור על טבלת המלאי ולבנות מחרוזת שבה כל שורה מציגה שם של פריט ואחריו הכמות שלו בפורמט item: quantity. כל פריט צריך להופיע בשורה נפרדת.

כדי להציג כל פריט בשורה משלו, השתמש בתו של שורה חדשה "\n" בין הרשומות. לדוגמה, "apple: 5\nbanana: 3" יוצג כשתי שורות נפרדות. הקפד לא להוסיף "\n" מוביל לפני הפריט הראשון: הוסף אותו רק בין הפריטים.

פרמטרים:

  • inventory (טבלה): טבלה בסגנון מילון, שבה המפתחות הם שמות של פריטים (מחרוזות) והערכים הם הכמויות (מספרים)

ערך מוחזר: מחרוזת שבה כל פריט והכמות שלו מופיעים בשורה נפרדת, כשהשורות מופרדות באמצעות "\n". פלט לדוגמה עבור {apple=5, banana=3}:
apple: 5
banana: 3

נסו בעצמכם

function printInventory(inventory)
    -- כדי לעצב את הפלט, אפשר לשרשר מחרוזות באמצעות האופרטור '..'.
    -- כדי להוסיף שורה חדשה, השתמשו בתו המיוחד '\n'.
    -- ייתכן שתצטרכו דרך לעקוב אחר השאלה אם אתם מוסיפים את הפריט הראשון או פריט נוסף
    -- כדי להחליט אם להוסיף ירידת שורה לפני הפריט.
    
    -- כתבו כאן קוד
end
quiz iconבחנו את עצמכם

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

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

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