סיכום — טבלה לקריאה בלבד
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 23 מתוך 54.
אתגר
קלכתבו פונקציה makeReadOnly שמקבלת את original ומחזירה גרסה לקריאה בלבד של הטבלה.
צרו טבלת proxy עם מטא-טבלה שמאפשרת קריאה מהטבלה המקורית, אך מונעת כל שינוי.
לוגיקה:
- צרו טבלת proxy ריקה
- צרו מטא-טבלה שבה
__indexמוגדר לטבלה המקורית (כדי לאפשר קריאה) - הוסיפו למטא-טבלה את
__newindexשלא עושה דבר (כדי לחסום שינויים) - חברו את המטא-טבלה ל-proxy באמצעות
setmetatable() - החזירו את טבלת ה-proxy
פרמטרים:
original(table): הטבלה שיש להגן עליה מפני שינויים
ערך מוחזר: טבלת proxy שמספקת גישה לקריאה בלבד לטבלה המקורית (table)
נסו בעצמכם
function makeReadOnly(original)
-- כתבו כאן קוד
end
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1איטרציה מתקדמת בטבלאות
איטרציה באמצעות pairs()איטרציה באמצעות ipairs()pairs() לעומת ipairs()סיכום – גיליון דמות4מבוא למטא־טבלאות
מהי מטא־טבלה?setmetatable ו־getmetatableמטא־מתודת __indexמטא־מתודת __newindexמטא־מתודת __tostringמטא־מתודות אריתמטיות חלק 1מטא־מתודות אריתמטיות חלק 2סיכום — טבלה לקריאה בלבד2פונקציות נוספות של ספריית הטבלאות
table.concat()בניית טבלה ו־unpack()table.sort()מיון מותאם אישית באמצעות פונקציותסיכום – לוח שיאיםתרגלו בעצמכם: קומפיילר Lua אונליין