Menu
CoddyTech

Valeurs par défaut pour les booléens

Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 28 sur 80.

Une mise en garde que tu connais grâce à Lua : or remplace aussi false. Pour un paramètre boolean? qui doit prendre la valeur true par défaut, flag = flag or true transforme un false explicite en true, car false or true vaut true :

local function sendAlert(message: string, loud: boolean?)
    loud = loud or true   -- sendAlert("Hi", false) reçoit quand même true
    print(message, loud)
end

Utilise plutôt une vérification explicite de nil. Elle attribue la valeur par défaut uniquement lorsque l’argument a été omis :

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

Pour les chaînes et les nombres, or est sûr, car seuls nil et false sont considérés comme faux.

challenge icon

Défi

Facile

Donne à un paramètre booléen la valeur par défaut true, qu’un false ne peut pas annuler.

  1. Écris local function shippingCost(weight: number, insured: boolean?): number.
  2. Commence par if insured == nil then insured = true end.
  3. Retourne weight * 0.5 + 2 lorsque insured est vrai, sinon weight * 0.5.
  4. Affiche shippingCost(4) et shippingCost(4, false).

Appuie sur Run Code : la sortie se termine par 4 et 2.

Essayez vous-même

-- Valeur par défaut grâce à l’idiome `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))

Toutes les leçons de Introduction à Luau

Entraînez-vous par vous-même : Compilateur Luau en ligne