Menu
CoddyTech

القيم الافتراضية للمعاملات

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

تترك لك المعاملات الاختيارية قيمة nil عليك التعامل معها. غالبًا ما يكون ما تريده حقًا هو قيمة احتياطية: «إذا لم يحدد المتصل قيمة، فافترض X». لا يحتوي Luau على صياغة للقيم الافتراضية في التوقيع (فلا توجد صياغة مثل greeting: string = "Hello")؛ بل تستخدم اصطلاح Lua الكلاسيكي، الآن مع الأنواع:

function greet(name: string, greeting: string?): string
    greeting = greeting or "Hello"
    return `{greeting}, {name}`
end

print(greet("Alice"))            -- Hello, Alice
print(greet("Alice", "Howdy"))   -- Howdy, Alice

يُشار إلى المعامل على أنه اختياري (string?)، ويستبدل السطر الأول من المتن nil بالقيمة الافتراضية. ينجح ذلك لأن nil قيمة زائفة: التعبير nil or "Hello" يُقيَّم إلى "Hello". بعد هذا السطر، يعرف المدقّق أن greeting لم يعد بإمكانه أن يكون nil.

challenge icon

التحدي

سهل

أعطِ معاملًا اختياريًا قيمة افتراضية.

  1. اكتب local function calculateTax(price: number, rate: number?): number.
  2. سطره الأول هو rate = rate or 0.05؛ ثم أعد price * rate.
  3. اطبع calculateTax(100) وcalculateTax(200, 0.08).

اضغط على تشغيل الكود: يُظهر الناتج 5، ثم 16.

جرّب بنفسك

-- 1) calculateTax(price: number, rate: number?): number
--    معدل افتراضي 0.05 باستخدام أسلوب `or`
-- 2) اطبع calculateTax(100) وcalculateTax(200, 0.08)

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

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