הוספת איברים וקריאתם
חלק מהיחידה מבוא ל-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 לנתונים קבועים (הגדרות תצורה, רשימות שלבים קבועות) שאסור לשנות לעולם לאחר יצירתם.
אתגר
קלצור מערך מטיפוס queue: {string} שמאותחל עם "save" ועם "load". לאחר מכן:
- הוסף לסוף את
"<code>quit" באמצעותtable.insert - הוסף את
"<code>help" במיקום 1 - הסר את הפקודה האחרונה באמצעות
table.remove, ושמור את הערך שהוחזר
לבסוף, הדפס כל אחד בשורה נפרדת:
- הפקודה שהוסרה
- כמה פקודות נותרו
- הפקודה הראשונה בתור
queue[10]: משבצת שאינה מכילה דבר
נסו בעצמכם
-- כתבו כאן קוד
-- 1) הכריזו על queue: {string} עם "save" ו-"load"
-- 2) הוסיפו בסוף את הטקסט המדויק מההוראות, והכניסו את הטקסט המדויק מההוראות במיקום 1
-- 3) הסירו את הפקודה האחרונה, ואז הדפיסו את ארבעת הערכים
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
טיפוסים בסיסיים: num, str, boolהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוסים מפורשותסיכום: תרגול טיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספת איברים וקריאתםמהו טיפוס Map?הצהרה על מפות וגישה אליהןמעבר על טבלאותטבלאות בעלות מבנים מעורביםמערכים רב־ממדיים מטיפוס מוגדרtable.unpack ו־Varargsסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין