Menu
Coddy logo textTech

טבלאות עם פונקציות

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Lua של Coddy. שיעור 1 מתוך 70.

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

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

local myTable = {
    greet = function(name)
        return "Hello, " .. name
    end
}

print(myTable.greet("Alice"))  -- פלט: Hello, Alice

אפשר גם להגדיר את הפונקציה בנפרד ואז להוסיף אותה לטבלה:

local myTable = {}

myTable.greet = function(name)
    return "Hello, " .. name
end

או השתמשו בתחביר המקוצר והנקי יותר הזה:

local myTable = {}

function myTable.greet(name)
    return "Hello, " .. name
end

שלוש הגישות מפיקות את אותה התוצאה. קוראים לפונקציה באמצעות תחביר נקודה: myTable.greet("Alice"). הדפוס הזה של איגוד פונקציות עם נתונים הוא הבסיס לתכנות מונחה עצמים ב-Lua.

challenge icon

אתגר

קל

צרו טבלה בשם calculator שמכילה ארבע פונקציות אריתמטיות:

  • add(a, b) - מחזירה את הסכום של a ו-b
  • subtract(a, b) - מחזירה את a פחות b
  • multiply(a, b) - מחזירה את המכפלה של a ו-b
  • divide(a, b) - מחזירה את a מחולק ב-b

תקבלו שלוש קלטים:

  1. שם של פעולה (אחת מהאפשרויות: add, subtract, multiply, divide)
  2. המספר הראשון
  3. המספר השני

קראו לפונקציה המתאימה מתוך טבלת calculator שלכם, על סמך שם הפעולה, והדפיסו את התוצאה.

נסו בעצמכם

-- קראו את הקלטים
local operation = io.read()
local num1 = tonumber(io.read())
local num2 = tonumber(io.read())

-- TODO: צרו טבלת calculator עם ארבע פונקציות:
-- add(a, b), subtract(a, b), multiply(a, b), divide(a, b)


-- TODO: קראו לפונקציה המתאימה מטבלת calculator באמצעות שם הפעולה
-- והדפיסו את התוצאה
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה תכנות מונחה עצמים

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