في هذا الموضوع سيتم شرح العمليات أو الوظائف والتي تسمى بالـ Functions في لغة البرمجة لوا

العمليات/الوظائف كما هو المتوقع منها في أغلب لغات البرمجة عبارة عن مهمة واحدة أو مجموعة من المهام وعادة ما نقوم بتمرير بعض المدخلات inputs أو parameters (داخل الأقواس) كما في المثال بالأسفل. العملية تقوم بعمل بعض المهام tasks وبعد الإنتهاء من المهمة تقوم بطباعة النتيجة إن اردت.

وفيما يلي الطرق الشائعة لكتابة العمليات/الوظائف:

local function f ()
--body
end

local f = function()
--body
end

function f ()
--body
end

f = function ()
--body
end

الجميل جداً في لوا هو أن العمليات يمكن أن تكون متغيّر ، لذلك الجداول في لوا ممكن أن تخزن العمليات في خصائصها. هذا يسمح بمرونة في استخدام الجداول. تستطيع استخدامها لحصر مجموعة من العمليات في جدول. لتسهيل الصورة لنأخذ على سبيل المثال مكتبة الرياضات في لوا. في هذه الحالة، لحساب جا 100 أو sin 100، ستكتب:

 math.sin(100) 

هنا، العملية الرياضية ليست سوى مجرد جدول table والخاصية sin هي في الواقع العملية أو الوظيفة.

Object Method طرق العنصر

العناصر objects في لوا متمثلة في الجداول tables. عرض عناصر كالـ (المربعات، الصور، الخ) و عناصر وقت التشغيل في المدى العالمي (global Runtime object) ليست سوى عناصر. كما في مكتبة الرياضيات، هذه العناصر تقوم بحفظ طرق العنصر (instance methods) كخصائص. وجه الاختلاف الوحيد، ومع ذلك، هو طريقة الكتابة syntax. يجب أن تخبر لوا أنك تعتزم لهذه العملية أن تسمى طرق العنصر object method وليست مجرد عملية عادية. وللقيام بذلك، يجب أن تستخدم عامل (:) عوضاً عن عامل النقطة فقط. هذه يمكن أن يختلف في لغات البرمجة الأخرى، لنرى الاختلاف بين الجافاسكربت ولوا:

Javascript

object.translate( 10, 10 );

Lua

object:translate( 10, 10 )

اتمنى أنني وفقت في الشرح وإذا كانت لديكم أسئلة، الرجاء كتابتها في التعليقات.