Menu
CoddyTech

Valori predefiniti per i booleani

Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 28 di 80.

Una precisazione che conosci da Lua: or sostituisce anche false. Per un parametro boolean? che dovrebbe avere come valore predefinito true, flag = flag or true trasforma un false esplicito in true, perché false or true è true:

local function sendAlert(message: string, loud: boolean?)
    loud = loud or true   -- sendAlert("Hi", false) riceve comunque true
    print(message, loud)
end

Usa invece un controllo esplicito di nil. Imposta il valore predefinito solo quando l'argomento non è stato specificato:

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

Per le stringhe e i numeri, or è sicuro, perché solo nil e false sono valori falsy.

challenge icon

Sfida

Facile

Assegna a un parametro booleano il valore predefinito true, che false non possa annullare.

  1. Scrivi local function shippingCost(weight: number, insured: boolean?): number.
  2. Inizia con if insured == nil then insured = true end.
  3. Restituisci weight * 0.5 + 2 quando insured è true, altrimenti weight * 0.5.
  4. Stampa shippingCost(4) e shippingCost(4, false).

Premi Esegui codice: l'output termina con 4 e 2.

Provalo tu

-- Valore predefinito tramite l'idioma `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))

Tutte le lezioni di Introduzione a Luau

Esercitati da solo: Compilatore Luau online