Menu
Coddy logo textTech

פונקציות כערכים ממדרגה ראשונה

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 12 מתוך 54.

ב-Lua, פונקציות הן יותר מסתם בלוקים של קוד שמבצעים משימות. הן ערכים שאפשר להתייחס אליהם כמו לכל סוג נתונים אחר. משמעות הדבר היא שאפשר לעבוד עם פונקציות באותו אופן שבו עובדים עם מספרים, מחרוזות או טבלאות.

אפשר לשמור פונקציה במשתנה:

local greet = function()
    print("Hello!")
end

greet()  -- פלט: Hello!

כאן, הפונקציה משויכת למשתנה greet, ואפשר לקרוא לה בדיוק כמו לכל פונקציה רגילה. כך נפתחות בפניך אפשרויות רבות ועוצמתיות לארגון הקוד שלך.

אפשר גם להעביר פונקציות כארגומנטים לפונקציות אחרות. הדבר שימושי במיוחד כשרוצים שפונקציה אחת תשתמש בהתנהגות שמוגדרת בפונקציה אחרת:

function executeAction(action)
    action()
end

local sayHello = function()
    print("Hello from a function!")
end

executeAction(sayHello)  -- פלט: Hello from a function!

בדוגמה הזו, executeAction מקבלת פונקציה כפרמטר וקוראת לה. הפונקציה sayHello מועברת בדיוק כמו שהיית מעביר מספר או מחרוזת.

פונקציות יכולות אפילו להחזיר פונקציות אחרות. כך אפשר ליצור פונקציות באופן דינמי על סמך תנאים או פרמטרים מסוימים:

function createMultiplier(factor)
    return function(number)
        return number * factor
    end
end

local double = createMultiplier(2)
print(double(5))  -- פלט: 10
challenge icon

אתגר

קל

כתבו פונקציה applyOperation שמקבלת את a, את b ואת operation, ומחזירה את התוצאה של הפעלת פונקציית הפעולה על שני המספרים.

הפרמטר operation הוא טבלה שמכילה פונקציה שתיקרא עם a ועם b כארגומנטים.

לוגיקה:

  • חלצו את הפונקציה מטבלת operation באמצעות המפתח "func"
  • קראו לפונקציה עם a ועם b כארגומנטים
  • החזירו את התוצאה

פרמטרים:

  • a (מספר): המספר הראשון
  • b (מספר): המספר השני
  • operation (טבלה): טבלה שמכילה פונקציה המאוחסנת במפתח "func"

ערך מוחזר: התוצאה של קריאה לפונקציית הפעולה עם a ועם b (מספר)

נסו בעצמכם

function applyOperation(a, b, operation)
    -- כתבו כאן את הקוד
end
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

תרגלו בעצמכם: קומפיילר Lua אונליין