סיכום – מטפל אירועים פשוט
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 15 מתוך 54.
אתגר
קלכתבו פונקציה createEventSystem שיוצרת מערכת אירועים פשוטה עם אירועים רשומים מראש ומפעילה אירוע אחד על סמך פרמטרי הקלט.
לוגיקה:
- צרו טבלה ריקה לאחסון אירועים בתוך
createEventSystem - הגדירו פונקציית
registerשמקבלת אתeventNameואתcallback(פונקציה שתופעל מאוחר יותר, כשהאירוע יופעל), ושומרת את הפונקציה בטבלת האירועים כשהמפתח הוא שם האירוע - הגדירו פונקציית
triggerשמקבלת אתeventNameואתarg, מחפשת את הפונקציה בטבלת האירועים וקוראת לה עם הארגומנט אם היא קיימת - לפני הפעלת אירוע כלשהו, רשמו את שלושת האירועים האלה:
"double": מקבל מספר ומחזיר אותו כשהוא מוכפל ב-2"square": מקבל מספר ומחזיר אותו בריבוע"increment": מקבל מספר ומחזיר אותו בתוספת 1
- הפעילו את האירוע שצוין בפרמטר
eventNameעם הפרמטרvalue - החזירו את התוצאה של האירוע שהופעל, או
"Event not found"אם האירוע לא קיים
פרמטרים:
eventName(מחרוזת): שם האירוע להפעלהvalue(מספר): הערך להעברה לפונקציית הקריאה החוזרת של האירוע
ערך מוחזר:
- תוצאת פונקציית הקריאה החוזרת (מספר), או
"Event not found"אם האירוע לא קיים (מספר|מחרוזת)
נסו בעצמכם
function createEventSystem(eventName, value)
-- כתבו כאן קוד
end
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1איטרציה מתקדמת בטבלאות
איטרציה באמצעות pairs()איטרציה באמצעות ipairs()pairs() לעומת ipairs()סיכום – גיליון דמות2פונקציות נוספות של ספריית הטבלאות
table.concat()בניית טבלה ו־unpack()table.sort()מיון מותאם אישית באמצעות פונקציותסיכום – לוח שיאים3מושגים מתקדמים בפונקציות
החזרת ערכים מרוביםפונקציות עם מספר משתנה של ארגומנטים (...)פונקציות כערכים ממדרגה ראשונהפונקציות אנונימיותמהי סגירה (Closure)?סיכום – מטפל אירועים פשוטתרגלו בעצמכם: קומפיילר Lua אונליין