Menu
CoddyTech

Boolean Değerler için Varsayılanlar

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 28 / 80.

Lua'dan bildiğin bir noktaya dikkat: or ayrıca false değerini de değiştirir. Varsayılan değeri true olması gereken bir boolean? parametresi için flag = flag or true, açıkça belirtilen bir false değerini true yapar; çünkü false or true ifadesinin sonucu true olur:

local function sendAlert(message: string, loud: boolean?)
    loud = loud or true   -- sendAlert("Hi", false) yine de true değerini alır
    print(message, loud)
end

Bunun yerine açık bir nil denetimi kullan. Bu, varsayılan değeri yalnızca argüman verilmediğinde atar:

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

Dizeler ve sayılar için or güvenlidir; çünkü yalnızca nil ve false falsy değerlerdir.

challenge icon

Görev

Kolay

Bir boolean parametreye, false değerinin değiştiremeyeceği varsayılan bir true değeri ver.

  1. local function shippingCost(weight: number, insured: boolean?): number yaz.
  2. Fonksiyona if insured == nil then insured = true end ile başla.
  3. insured true ise weight * 0.5 + 2, değilse weight * 0.5 döndür.
  4. shippingCost(4) ve shippingCost(4, false) değerlerini yazdır.

Kodu Çalıştır düğmesine bas: çıktı 4 ve 2 ile biter.

Kendin dene

-- `or` kalıbıyla varsayılan değer
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'ya Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online Luau derleyicisi