מהי מטא־טבלה?
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 16 מתוך 54.
מטא-טבלה היא פשוט טבלת Lua רגילה, אבל יש לה מטרה מיוחדת. כשמצמידים מטא-טבלה לטבלה אחרת (נקרא לה הטבלה "הראשית"), אפשר לשנות את אופן ההתנהגות של הטבלה הראשית כשמבצעים עליה פעולות מסוימות.
חשוב על זה כך: בדרך כלל, אם תנסה לחבר שתי טבלאות באמצעות האופרטור +, Lua לא תדע מה לעשות ותציג שגיאה. אבל באמצעות מטא-טבלה, תוכל להגדיר מה המשמעות של חיבור עבור הטבלאות שלך. תוכל לגרום לה לחבר ערכים תואמים, לשרשר את התוכן שלהן או לעשות כל דבר אחר שמתאים לתוכנית שלך.
מטא־טבלאות פועלות באמצעות הגדרת פונקציות מיוחדות שנקראות מתודות מטא. למתודות המטא האלה יש שמות מסוימים שמתחילים בשני קווים תחתונים, כמו __add לחיבור או __index לחיפוש מפתחות חסרים. כש-Lua נתקלת בפעולה על טבלה שיש לה מטא־טבלה, היא בודקת אם יש במטא־טבלה מתודת מטא מתאימה ומשתמשת בה כדי לקבוע מה צריך לקרות.
המושג הזה פותח אפשרויות כמו יצירת טיפוסי נתונים מותאמים אישית עם התנהגויות משלהם, מימוש תבניות תכנות מונחה עצמים, הגנה על טבלאות מפני שינויים לא רצויים ועוד הרבה. בשיעורים הבאים תלמד איך להצמיד מטא־טבלאות לטבלאות ולהשתמש במטא־מתודות כדי להתאים אישית את ההתנהגות שלהן.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1איטרציה מתקדמת בטבלאות
איטרציה באמצעות pairs()איטרציה באמצעות ipairs()pairs() לעומת ipairs()סיכום – גיליון דמות2פונקציות נוספות של ספריית הטבלאות
table.concat()בניית טבלה ו־unpack()table.sort()מיון מותאם אישית באמצעות פונקציותסיכום – לוח שיאיםתרגלו בעצמכם: קומפיילר Lua אונליין