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

الدوال التي لا ترجع شيئاً

جزء من قسم مقدمة إلى Luau في رحلة Lua على Coddy — الدرس 24 من 73.

العديد من الدوال لا تحسب قيمة — بل تفعل شيئًا ما: تطبع رسالة، تحدّث جدولاً، أو تحفظ حالة. في Luau يمكنك توضيح أن الدالة لا ترجع لا شيء باستخدام نوع الإرجاع الفارغ ():

function logMessage(message: string): ()
    print(message)
end

local counter = 0
function incrementCounter(): ()
    counter += 1
end

إذا كنت قد تعاملت مع TypeScript من قبل، فإن () تؤدي دور void — ولكن صيغتها في Luau هي زوج من الأقواس الفارغة، أي حرفيًا "صفر من قيم الإرجاع".

هذا التوضيح اختياري: إذا تركته، ستستنتج Luau أن الدالة لا ترجع شيئًا. كتابة : () توثق قصدك بشكل صريح — أي شخص يقرأ التوقيع (signature) سيغدو عالمًا بأن هذه الدالة يُستدعى من أجل تأثيراتها الجانبية (side-effects)، وليس لنتائجها.

في وقت التشغيل لا يتغير أي شيء (كما هو المعتاد): الدالة التي لا تحتوي على قيمة return تنتج ببساطة nil إذا حاولت التقاط نتيجتها — تمامًا مثل لغة Lua العادية.

challenge icon

التحدي

سهل

أنشئ دالة باسم displayWelcome تأخذ userName: string ولها نوع إرجاع صريح هو (). يجب أن تطبع: "Welcome to our application, [userName]!"

أنشئ دالة باسم logError تأخذ errorMessage: string مع نوع إرجاع (). يجب أن تطبع: "ERROR: [errorMessage]"

أنشئ دالة باسم processData لا تأخذ أي معاملات، مع نوع إرجاع (). يجب أن تطبع "Processing data..." ثم "Data processing complete." في السطر التالي.

قم باستدعائها بهذا الترتيب:

  1. displayWelcome("Alice")
  2. processData()
  3. logError("Invalid input detected")
  4. displayWelcome("Bob")

جرّب بنفسك

-- اكتب الكود هنا
-- displayWelcome(userName: string): ()
-- logError(errorMessage: string): ()
-- processData(): ()
-- ثم استدعِ: displayWelcome("Alice"), processData(),
-- logError("Invalid input detected"), displayWelcome("Bob")
quiz iconاختبر نفسك

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

جميع دروس مقدمة إلى Luau