סיכום – מטפל אירועים פשוט
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-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 אונליין