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

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

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

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

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

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

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

هذا التعليق التوضيحي اختياري: اتركه، وستستنتج Luau أن الدالة تُرجع nothing. إن كتابة : () صراحةً توثّق نيتك: فأي شخص يقرأ التوقيع يعرف أن هذه الدالة تُستدعى بسبب الآثار الجانبية لها، وليس بسبب نتيجتها.

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

challenge icon

التحدي

سهل

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

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

أنشئ function باسم 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

تدرّب بنفسك: مترجم Lua عبر الإنترنت