Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الجداول مع الدوال

جزء من قسم Object Oriented Programming في رحلة Lua على Coddy — الدرس 1 من 70.

في لغة Lua، تُعد الجداول (tables) متعددة الاستخدامات بشكل مذهل. فبالإضافة إلى تخزين البيانات، يمكنها أيضاً احتواء الدوال (functions). يتيح لك ذلك تجميع العمليات ذات الصلة معاً، مما يحافظ على تنظيم الكود الخاص بك وسهولة إدارته.

لوضع دالة داخل جدول، ما عليك سوى تعيينها لمفتاح تماماً مثل أي قيمة أخرى:

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

تؤدي جميع الأساليب الثلاثة إلى نفس النتيجة. تقوم باستدعاء الدالة باستخدام تدوين النقطة (dot notation): 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 الخاص بك بناءً على اسم العملية واطبع النتيجة.

ورقة مرجعية

في لغة 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")

جرّب بنفسك

-- قراءة المدخلات
local operation = io.read()
local num1 = tonumber(io.read())
local num2 = tonumber(io.read())

-- TODO: إنشاء جدول حاسبة يحتوي على أربع دوال:
-- add(a, b), subtract(a, b), multiply(a, b), divide(a, b)


-- TODO: استدعاء الدالة المناسبة من جدول الحاسبة باستخدام اسم العملية
-- وطباعة النتيجة
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming