Menu
CoddyTech

Nilai Default untuk Boolean

Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 28 dari 80.

Ada satu hal yang perlu diingat dari Lua: or juga menggantikan false. Untuk parameter boolean? yang nilai bawaannya seharusnya true, flag = flag or true mengubah false yang diberikan secara eksplisit menjadi true, karena false or true adalah true:

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

Gunakan pemeriksaan nil yang eksplisit. Cara ini mengisi nilai bawaan hanya jika argumennya tidak diberikan:

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

Untuk string dan angka, or aman digunakan, karena hanya nil dan false yang bernilai falsy.

challenge icon

Tantangan

Mudah

Beri parameter boolean nilai default true yang tidak bisa dibatalkan oleh false.

  1. Tulis local function shippingCost(weight: number, insured: boolean?): number.
  2. Awali dengan if insured == nil then insured = true end.
  3. Kembalikan weight * 0.5 + 2 saat insured bernilai true, jika tidak, kembalikan weight * 0.5.
  4. Cetak shippingCost(4) dan shippingCost(4, false).

Tekan Jalankan Kode: output diakhiri dengan 4 dan 2.

Coba sendiri

-- Nilai bawaan menggunakan idiom `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))

Semua pelajaran di Pengantar Luau

Latihan sendiri: Compiler Luau online