Menu
Coddy logo textTech

הוספת איברים וקריאתם

חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 14 מתוך 73.

אתה כבר מרחיב ומצמצם טבלאות Lua באמצעות table.insert ו־table.remove: שתיהן פועלות בדיוק באותו אופן גם על מערכים מטיפוס מוגדר. ההבדל הוא ש־Luau כעת בודק מה אתה מוסיף: הוספת מחרוזת למערך {number} מסומנת בזמן ההקלדה, ולא מתגלה רק כששחקן מבולבל נתקל בה בזמן הריצה.

local queue: {string} = {"save", "load"}
table.insert(queue, "quit")      -- הוסף לסוף
table.insert(queue, 1, "help")   -- הוסף במיקום 1, תוך הזזת השאר
local last = table.remove(queue) -- מסיר וגם מחזיר את האיבר האחרון

table.remove(t) מוציאה את האיבר האחרון ומחזירה אותו אליך; table.remove(t, 1) מסירה את האיבר הראשון ומזיזה את כל השאר למטה. מכיוון שהמערך מטיפוס {string}, Luau יודעת שהערך המוחזר הוא מחרוזת.

קריאה סלחנית בדיוק כמו ב־Lua רגילה: אינדקס שאין בו ערך, queue[0], queue[-1] או כל אינדקס שמעבר ל־#queue, מחזיר בשקט את nil. לא נוצרת שגיאה, לכן בדוק אם הערך הוא nil לפני שתשתמש בערך שאינך בטוח שהוא קיים.

עוד כלי לארגז הכלים שלך: table.freeze(t) הופכת טבלה לקריאה בלבד בזמן הריצה: כל ניסיון מאוחר יותר לשנות אותה יגרום לשגיאה. זהו הפתרון של Luau לנתונים קבועים (הגדרות תצורה, רשימות שלבים קבועות) שאסור לשנות לעולם לאחר יצירתם.

challenge icon

אתגר

קל

צור מערך מטיפוס queue: {string} שמאותחל עם "save" ועם "load". לאחר מכן:

  1. הוסף לסוף את "<code>quit" באמצעות table.insert
  2. הוסף את "<code>help" במיקום 1
  3. הסר את הפקודה האחרונה באמצעות table.remove, ושמור את הערך שהוחזר

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

  1. הפקודה שהוסרה
  2. כמה פקודות נותרו
  3. הפקודה הראשונה בתור
  4. queue[10]: משבצת שאינה מכילה דבר

נסו בעצמכם

-- כתבו כאן קוד
-- 1) הכריזו על queue: {string} עם "save" ו-"load"
-- 2) הוסיפו בסוף את הטקסט המדויק מההוראות, והכניסו את הטקסט המדויק מההוראות במיקום 1
-- 3) הסירו את הפקודה האחרונה, ואז הדפיסו את ארבעת הערכים
quiz iconבחנו את עצמכם

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

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

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