Menu
CoddyTech

ערכי ברירת מחדל לבוליאנים

חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 28 מתוך 80.

יש הסתייגות אחת שכבר מוכרת לך מ-Lua: גם or מחליף את false. עבור פרמטר מסוג boolean? שאמור לקבל כברירת מחדל את הערך true, הביטוי flag = flag or true הופך ערך מפורש של false ל-true, כי false or true הוא true:

local function sendAlert(message: string, loud: boolean?)
    loud = loud or true   -- sendAlert("Hi", false) עדיין מקבלת true
    print(message, loud)
end

השתמשו במקום זאת בבדיקה מפורשת של nil. היא מציבה את ערך ברירת המחדל רק כשהארגומנט לא הועבר:

local function sendAlert(message: string, loud: boolean?)
    if loud == nil then
        loud = true
    end
    print(message, loud)
end

sendAlert("Hi")         -- Hi  true
sendAlert("Hi", false)  -- Hi  false

עבור מחרוזות ומספרים, or בטוח לשימוש, מכיוון שרק nil ו-false נחשבים לערכי שקר.

challenge icon

אתגר

קל

תן לפרמטר בוליאני ערך ברירת מחדל של true, ש־false לא יוכל לבטל.

  1. כתוב local function shippingCost(weight: number, insured: boolean?): number.
  2. התחל כך: if insured == nil then insured = true end.
  3. החזר weight * 0.5 + 2 כאשר insured הוא true, אחרת החזר weight * 0.5.
  4. הדפס shippingCost(4) ו־shippingCost(4, false).

לחץ על הרצת קוד: הפלט מסתיים ב־4 וב־2.

נסו בעצמכם

-- ערך ברירת מחדל באמצעות התבנית `or`
local function calculateTax(price: number, rate: number?): number
    rate = rate or 0.05
    return price * rate
end

print(calculateTax(100))
print(calculateTax(200, 0.08))

כל השיעורים ביחידה מבוא ל-Luau

תרגלו בעצמכם: קומפיילר Luau אונליין